Update
This commit is contained in:
parent
8907a2005c
commit
aa60ab2c9c
@ -547,18 +547,6 @@
|
|||||||
<property name="row_spacing">6</property>
|
<property name="row_spacing">6</property>
|
||||||
<property name="column_spacing">12</property>
|
<property name="column_spacing">12</property>
|
||||||
<property name="column_homogeneous">True</property>
|
<property name="column_homogeneous">True</property>
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="label35">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
|
||||||
<property name="label" translatable="yes">Slider Orientation:</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="left_attach">0</property>
|
|
||||||
<property name="top_attach">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="vol_pos_label">
|
<object class="GtkLabel" id="vol_pos_label">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@ -568,7 +556,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">0</property>
|
<property name="left_attach">0</property>
|
||||||
<property name="top_attach">2</property>
|
<property name="top_attach">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
@ -584,21 +572,6 @@
|
|||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">0</property>
|
<property name="left_attach">0</property>
|
||||||
<property name="top_attach">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkComboBoxText" id="vol_orientation_combo">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="active">0</property>
|
|
||||||
<items>
|
|
||||||
<item id="vertical" translatable="yes">Vertical</item>
|
|
||||||
<item id="horizontal" translatable="yes">Horizontal</item>
|
|
||||||
</items>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="left_attach">1</property>
|
|
||||||
<property name="top_attach">0</property>
|
<property name="top_attach">0</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
@ -616,7 +589,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
<property name="top_attach">2</property>
|
<property name="top_attach">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -38,6 +38,7 @@ mod ui_popup_menu;
|
|||||||
mod ui_popup_window;
|
mod ui_popup_window;
|
||||||
mod ui_prefs_dialog;
|
mod ui_prefs_dialog;
|
||||||
mod ui_tray_icon;
|
mod ui_tray_icon;
|
||||||
|
mod prefs;
|
||||||
mod support_ui;
|
mod support_ui;
|
||||||
mod support_alsa;
|
mod support_alsa;
|
||||||
|
|
||||||
|
100
src/prefs.rs
Normal file
100
src/prefs.rs
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
use errors::*;
|
||||||
|
use std::path::Path;
|
||||||
|
use glib;
|
||||||
|
use glib::KeyFile;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const DEFAULT_PREFS: &str = "[PNMixer]\n
|
||||||
|
AlsaCard=(default)\n
|
||||||
|
AlsaChannel=Master\n
|
||||||
|
DrawVolMeter=True\n
|
||||||
|
VolMeterOffset=10\n
|
||||||
|
VolMeterColor=245;121;0;\n
|
||||||
|
SystemTheme=true\n
|
||||||
|
VolControlCommand=xfce4-mixer\n
|
||||||
|
VolControlStep=5\n
|
||||||
|
MiddleClickAction=0\n
|
||||||
|
CustomCommand=\n
|
||||||
|
EnableNotifications=true\n
|
||||||
|
NotificationTimeout=1500\n
|
||||||
|
MouseNotifications=true\n
|
||||||
|
PopupNotifcations=true\n
|
||||||
|
ExternalNotifications=true\n";
|
||||||
|
|
||||||
|
|
||||||
|
const VOL_CONTROL_COMMANDS: [&str; 3] = [
|
||||||
|
"gnome-alsamixer",
|
||||||
|
"xfce4-mixer",
|
||||||
|
"alsamixergui"
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pub enum MiddleClickAction {
|
||||||
|
ToggleMute,
|
||||||
|
ShowPreferences,
|
||||||
|
VolumeControl,
|
||||||
|
CustomCommand(String),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
struct Prefs {
|
||||||
|
key_file: glib::KeyFile,
|
||||||
|
|
||||||
|
/* device prefs */
|
||||||
|
pub card: String,
|
||||||
|
pub channel: String,
|
||||||
|
// TODO: normalize volume?
|
||||||
|
|
||||||
|
/* view prefs */
|
||||||
|
pub draw_vol_meter: bool,
|
||||||
|
pub vol_meter_offset: i64,
|
||||||
|
pub vol_meter_color: (u8, u8, u8),
|
||||||
|
pub system_theme: bool,
|
||||||
|
// TODO: Display text folume/text volume pos?
|
||||||
|
|
||||||
|
/* behavior */
|
||||||
|
pub vol_control_cmd: String,
|
||||||
|
pub vol_scroll_step: f64,
|
||||||
|
pub middle_click_action: MiddleClickAction,
|
||||||
|
// TODO: fine scroll step?
|
||||||
|
|
||||||
|
// TODO: HotKeys?
|
||||||
|
|
||||||
|
/* notifications */
|
||||||
|
pub enable_notifications: bool,
|
||||||
|
pub notifcation_timeout: i64,
|
||||||
|
pub notify_mouse_scroll: bool,
|
||||||
|
pub notify_popup: bool,
|
||||||
|
pub notify_external: bool,
|
||||||
|
// TODO: notify_hotkeys?
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
impl Prefs {
|
||||||
|
pub fn new() -> Prefs {
|
||||||
|
// load from config
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn reload_from_config(&self) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pub fn save_to_config() -> Result<()> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fn config_path() -> String {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fn ensure_config_path() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user