diff options
author | Conor Curran <conor.curran@canonical.com> | 2010-01-27 13:21:02 +0000 |
---|---|---|
committer | Conor Curran <conor.curran@canonical.com> | 2010-01-27 13:21:02 +0000 |
commit | 5a86d06d8019cd9a827f69839d23268a2a6ebc51 (patch) | |
tree | 4c76cffbc028fbe585199f794e99c5cc13fda83f /src/sound-service.h | |
parent | ef9c492c6203cbc1a72aca7c48eb3ada324f2581 (diff) | |
download | ayatana-indicator-sound-5a86d06d8019cd9a827f69839d23268a2a6ebc51.tar.gz ayatana-indicator-sound-5a86d06d8019cd9a827f69839d23268a2a6ebc51.tar.bz2 ayatana-indicator-sound-5a86d06d8019cd9a827f69839d23268a2a6ebc51.zip |
copied contents from lp:~cjcurran/wasilla/soundmenu without the noise
Diffstat (limited to 'src/sound-service.h')
-rw-r--r-- | src/sound-service.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/sound-service.h b/src/sound-service.h new file mode 100644 index 0000000..0687ad0 --- /dev/null +++ b/src/sound-service.h @@ -0,0 +1,71 @@ +#ifndef __INCLUDE_SOUND_SERVICE_H__ +#define __INCLUDE_SOUND_SERVICE_H__ + +/* +This service primarily controls PulseAudio and is driven by the sound indicator menu on the panel. +Copyright 2010 Canonical Ltd. + +Authors: + Conor Curran <conor.curran@canonical.com> + Ted Gould <ted@canonical.com> + Christoph Korn <c_korn@gmx.de> + Cody Russell <crussell@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/>. +*/ + +#include <config.h> +#include <unistd.h> +#include <glib/gi18n.h> + +#include <dbus/dbus-glib.h> +#include <dbus/dbus-glib-bindings.h> + +#include <libdbusmenu-glib/server.h> +#include <libdbusmenu-glib/menuitem.h> +#include <libdbusmenu-glib/client.h> + +#include <libindicator/indicator-service.h> + +#include <pulse/pulseaudio.h> +#include <pulse/glib-mainloop.h> +#include <pulse/error.h> +#include <pulse/gccmacro.h> + +#include "dbus-shared-names.h" + +// GTK + DBUS +static GMainLoop * mainloop = NULL; +static DbusmenuMenuitem * root_menuitem = NULL; +static DbusmenuMenuitem * mute_all_menuitem = NULL; +static SoundServiceDbus * dbus_interface = NULL; + +// PULSEAUDIO +static pa_context *pulse_context = NULL; +static pa_glib_mainloop *pa_main_loop = NULL; +static GPtrArray* sink_list = NULL; +static gboolean sink_available = TRUE; + +static void context_state_callback(pa_context *c, void *userdata); +static gboolean idle_routine (gpointer data); +static void rebuild_sound_menu(DbusmenuMenuitem *root, SoundServiceDbus *service); + +static gboolean all_muted = FALSE; +static void set_global_mute(); + +// ENTRY AND EXIT POINTS +void service_shutdown(IndicatorService * service, gpointer user_data); +int main (int argc, char ** argv); + +#endif + |