<?xml version="1.0"?>
-<!--*- mode: xml -*-->
<interface>
+ <!-- interface-requires gtk+ 2.12 -->
+ <!-- interface-naming-policy toplevel-contextual -->
<object class="GtkAdjustment" id="adjustment1">
- <property name="upper">15</property>
+ <property name="value">5</property>
<property name="lower">1</property>
- <property name="page_increment">10</property>
+ <property name="upper">15</property>
<property name="step_increment">1</property>
- <property name="page_size">0</property>
- <property name="value">5</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkListStore" id="liststore1">
+ <columns>
+ <!-- column-name mode_id -->
+ <column type="gint"/>
+ <!-- column-name Name -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0">0</col>
+ <col id="1" translatable="yes">Off</col>
+ </row>
+ <row>
+ <col id="0">1</col>
+ <col id="1" translatable="yes">Track</col>
+ </row>
+ <row>
+ <col id="0">2</col>
+ <col id="1" translatable="yes">Album</col>
+ </row>
+ </data>
</object>
<object class="GtkVBox" id="server-vbox">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkFrame" id="frame6">
<property name="visible">True</property>
<property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="shadow_type">none</property>
<child>
<object class="GtkTable" id="table10">
<property name="visible">True</property>
<property name="row_spacing">6</property>
<child>
<object class="GtkCheckButton" id="cb_fading">
+ <property name="label" translatable="yes">Enable crossfade</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Enable crossfade</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
- <signal handler="xfade_enable_toggled" name="toggled"/>
+ <signal name="toggled" handler="xfade_enable_toggled"/>
</object>
<packing>
<property name="right_attach">2</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="y_options"></property>
</packing>
</child>
<child>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="y_options"></property>
</packing>
</child>
<child>
<property name="climb_rate">1</property>
<property name="snap_to_ticks">True</property>
<property name="numeric">True</property>
- <signal handler="xfade_time_changed" name="changed"/>
+ <signal name="changed" handler="xfade_time_changed"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="y_options"></property>
</packing>
</child>
</object>
</object>
<packing>
<property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="replay_gain_frame">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkComboBox" id="replay_gain_combo">
+ <property name="visible">True</property>
+ <property name="model">liststore1</property>
+ <signal name="changed" handler="server_pref_replaygain_changed"/>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Replaygain</b></property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frm_outputs">
<property name="visible">True</property>
<property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="shadow_type">none</property>
<child>
<object class="GtkScrolledWindow" id="scrolledwindow2">
<property name="height_request">100</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="border_width">12</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="hscrollbar_policy">automatic</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">in</property>
<child>
<object class="GtkTreeView" id="tv_outputs">
<property name="visible">True</property>
</child>
</object>
<packing>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkImage" id="image46">
<property name="visible">True</property>
<property name="stock">gtk-dialog-warning</property>
- <property name="icon_size">3</property>
+ <property name="icon-size">3</property>
</object>
<packing>
<property name="expand">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
</object>
<packing>
<property name="expand">False</property>
- <property name="position">2</property>
+ <property name="position">3</property>
</packing>
</child>
</object>
{
update_outputs_settings();
}
+ if(what&MPD_CST_REPLAYGAIN)
+ {
+ if(server_pref_xml)
+ {
+ gtk_combo_box_set_active(GTK_COMBO_BOX(gtk_builder_get_object(server_pref_xml, "replay_gain_combo")),
+ mpd_server_get_replaygain_mode(connection));
+ }
+ }
}
server_pref_xml = NULL;
}
}
+void server_pref_replaygain_changed(GtkComboBox *combo, gpointer data)
+{
+ int cur = gtk_combo_box_get_active(combo);
+ if(cur != mpd_server_get_replaygain_mode(connection))
+ {
+ if(mpd_server_check_command_allowed(connection, "replay_gain_mode") == MPD_SERVER_COMMAND_ALLOWED){
+ mpd_server_set_replaygain_mode(connection, cur);
+ }
+ }
+
+}
static void server_pref_construct(GtkWidget *container)
{
gchar *path = gmpc_get_full_glade_path("preferences-server.ui");
- server_pref_xml = gtk_builder_new();//glade_xml_new(path, "server-vbox",NULL);
+ server_pref_xml = gtk_builder_new();
gtk_builder_add_from_file(server_pref_xml, path, NULL);
q_free(path);
if(server_pref_xml)
{
GtkWidget *vbox =(GtkWidget *) gtk_builder_get_object(server_pref_xml, "server-vbox");
+ GtkWidget *frame = (GtkWidget *)gtk_builder_get_object(server_pref_xml, "replay_gain_frame");
create_outputs_tree();
update_outputs_settings();
if(!mpd_check_connected(connection))
gtk_widget_set_sensitive(vbox,TRUE);
gtk_widget_hide((GtkWidget *)gtk_builder_get_object(server_pref_xml, "hb_warning_mesg"));
}
+ switch(mpd_server_check_command_allowed(connection, "replay_gain_status")){
+ case MPD_SERVER_COMMAND_ALLOWED:
+ {
+ gtk_combo_box_set_active(GTK_COMBO_BOX(gtk_builder_get_object(server_pref_xml, "replay_gain_combo")),
+ mpd_server_get_replaygain_mode(connection));
+ switch(mpd_server_check_command_allowed(connection, "replay_gain_mode")){
+ case MPD_SERVER_COMMAND_ALLOWED:
+ break;
+ default:
+ gtk_widget_set_sensitive(frame, FALSE);
+ break;
+ }
+ break;
+ }
+ case MPD_SERVER_COMMAND_NOT_ALLOWED:
+ gtk_widget_set_sensitive(frame, FALSE);
+ break;
+ case MPD_SERVER_COMMAND_NOT_SUPPORTED:
+ default:
+ gtk_widget_hide(frame);
+ }
if(mpd_status_get_crossfade(connection) == 0)
{