diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/indicator-sound.c | 38 | ||||
-rw-r--r-- | src/indicator-sound.h | 29 | ||||
-rw-r--r-- | src/sound-service.c | 1 |
4 files changed, 53 insertions, 16 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 543ec58..5abacda 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -8,6 +8,7 @@ soundmenulibdir = $(INDICATORDIR) soundmenulib_LTLIBRARIES = libsoundmenu.la libsoundmenu_la_SOURCES = \ common-defs.h \ + indicator-sound.h \ indicator-sound.c \ dbus-shared-names.h \ sound-service-client.h \ diff --git a/src/indicator-sound.c b/src/indicator-sound.c index ffe7acb..546f404 100644 --- a/src/indicator-sound.c +++ b/src/indicator-sound.c @@ -35,7 +35,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <libindicator/indicator-object.h> #include <libindicator/indicator-service-manager.h> - +#include "indicator-sound.h" #include "dbus-shared-names.h" #include "sound-service-client.h" #include "common-defs.h" @@ -90,15 +90,13 @@ static gboolean key_press_cb(GtkWidget* widget, GdkEventKey* event, gpointer dat // DBUS communication static DBusGProxy *sound_dbus_proxy = NULL; static void connection_changed (IndicatorServiceManager * sm, gboolean connected, gpointer userdata); -static void catch_signal_sink_input_while_muted(DBusGProxy * proxy, gboolean value, gpointer userdata); +/*static void catch_signal_sink_input_while_muted(DBusGProxy * proxy, gboolean value, gpointer userdata);*/ static void catch_signal_sink_volume_update(DBusGProxy * proxy, gdouble volume_percent, gpointer userdata); static void catch_signal_sink_mute_update(DBusGProxy *proxy, gboolean mute_value, gpointer userdata); static void fetch_volume_percent_from_dbus(); static void fetch_mute_value_from_dbus(); /****Volume States 'members' ***/ -static void prepare_state_machine(); -static void determine_state_from_volume(gdouble volume_percent); static void update_state(const gint state); static const gint STATE_MUTED = 0; @@ -131,11 +129,11 @@ indicator_sound_class_init (IndicatorSoundClass *klass) io_class->get_image = get_icon; io_class->get_menu = get_menu; - dbus_g_object_register_marshaller (_sound_service_marshal_VOID__INT_BOOLEAN, - G_TYPE_NONE, - G_TYPE_INT, - G_TYPE_BOOLEAN, - G_TYPE_INVALID); +/* dbus_g_object_register_marshaller (_sound_service_marshal_VOID__INT_BOOLEAN,*/ +/* G_TYPE_NONE,*/ +/* G_TYPE_INT,*/ +/* G_TYPE_BOOLEAN,*/ +/* G_TYPE_INVALID);*/ return; } @@ -259,7 +257,7 @@ connection_changed (IndicatorServiceManager * sm, gboolean connected, gpointer u g_debug("about to connect to the signals"); dbus_g_proxy_add_signal(sound_dbus_proxy, SIGNAL_SINK_INPUT_WHILE_MUTED, G_TYPE_BOOLEAN, G_TYPE_INVALID); - dbus_g_proxy_connect_signal(sound_dbus_proxy, SIGNAL_SINK_INPUT_WHILE_MUTED, G_CALLBACK(catch_signal_sink_input_while_muted), NULL, NULL); +/* dbus_g_proxy_connect_signal(sound_dbus_proxy, SIGNAL_SINK_INPUT_WHILE_MUTED, G_CALLBACK(catch_signal_sink_input_while_muted), NULL, NULL);*/ dbus_g_proxy_add_signal(sound_dbus_proxy, SIGNAL_SINK_VOLUME_UPDATE, G_TYPE_DOUBLE, G_TYPE_INVALID); dbus_g_proxy_connect_signal(sound_dbus_proxy, SIGNAL_SINK_VOLUME_UPDATE, G_CALLBACK(catch_signal_sink_volume_update), NULL, NULL); dbus_g_proxy_add_signal(sound_dbus_proxy, SIGNAL_SINK_MUTE_UPDATE, G_TYPE_BOOLEAN, G_TYPE_INVALID); @@ -284,7 +282,7 @@ connection_changed (IndicatorServiceManager * sm, gboolean connected, gpointer u /* Prepare states Array. */ -static void prepare_state_machine() +void prepare_state_machine() { // TODO we need three more images volume_states = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_free); @@ -297,7 +295,15 @@ static void prepare_state_machine() g_hash_table_insert(volume_states, GINT_TO_POINTER(STATE_SINKS_NONE), g_strdup("audio-output-none-panel")); } +gint get_state() +{ + return current_state; +} +void prepare_for_tests(IndicatorObject *io) +{ + get_icon(io); +} static void update_state(const gint state) { @@ -313,7 +319,7 @@ static void update_state(const gint state) } -static void determine_state_from_volume(gdouble volume_percent) +void determine_state_from_volume(gdouble volume_percent) { /* g_debug("determine_state_from_volume - previous_state = %i", previous_state);*/ @@ -372,10 +378,10 @@ static void fetch_mute_value_from_dbus() g_debug("at the indicator start up and the MUTE returned from dbus method is %i", initial_mute); } -static void catch_signal_sink_input_while_muted(DBusGProxy * proxy, gboolean block_value, gpointer userdata) -{ - g_debug("signal caught - sink input while muted with value %i", block_value); -} +/*static void catch_signal_sink_input_while_muted(DBusGProxy * proxy, gboolean block_value, gpointer userdata)*/ +/*{*/ +/* g_debug("signal caught - sink input while muted with value %i", block_value);*/ +/*}*/ static void catch_signal_sink_volume_update(DBusGProxy *proxy, gdouble volume_percent, gpointer userdata) { diff --git a/src/indicator-sound.h b/src/indicator-sound.h new file mode 100644 index 0000000..eaf8948 --- /dev/null +++ b/src/indicator-sound.h @@ -0,0 +1,29 @@ +/* +A small wrapper utility to load indicators and put them as menu items +into the gnome-panel using it's applet interface. + +Copyright 2010 Canonical Ltd. + +Authors: + Conor Curran <conor.curra@canonical.com> + Ted Gould <ted@canonical.com> + +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License version 3, as published +by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranties of +MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR +PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + + +void prepare_state_machine(); +void determine_state_from_volume(gdouble volume_percent); +gint get_state(); +// Not nice +void prepare_for_tests(IndicatorObject * io); diff --git a/src/sound-service.c b/src/sound-service.c index 62f6bc6..61bf702 100644 --- a/src/sound-service.c +++ b/src/sound-service.c @@ -127,6 +127,7 @@ service_shutdown (IndicatorService *service, gpointer user_data) if (mainloop != NULL) { g_debug("Service shutdown !"); // TODO: uncomment for release !! + // TODO free the dbus interface !! close_pulse_activites(); g_main_loop_quit(mainloop); } |