32
32
static void pama_applet_dispose (GObject *gobject);
33
33
static void pama_applet_change_orient (PanelApplet *applet, PanelAppletOrient orient);
34
34
static void pama_applet_pulse_context_disconnected(PamaPulseContext *context, gpointer data);
35
static void pama_applet_pulse_context_connected (PamaPulseContext *context, gpointer data);
35
36
static void pama_applet_pulse_context_notify (PamaPulseContext *context, GParamSpec *pspec, gpointer data);
36
37
static void pama_applet_update_default_devices (PamaApplet *applet);
37
38
static void pama_applet_io_devs_changed (gpointer, guint, gpointer data);
73
74
self->sink_event_box = gtk_event_box_new();
74
75
self->source_event_box = gtk_event_box_new();
75
gtk_event_box_set_visible_window(GTK_EVENT_BOX(self->sink_event_box), FALSE);
76
gtk_event_box_set_visible_window(GTK_EVENT_BOX(self->sink_event_box), FALSE);
76
77
gtk_event_box_set_visible_window(GTK_EVENT_BOX(self->source_event_box), FALSE);
77
gtk_box_pack_start(self->box, self->sink_event_box, FALSE, TRUE, 0);
78
gtk_widget_set_tooltip_text(GTK_WIDGET(self->sink_event_box), _("Not connected to PulseAudio server"));
79
gtk_widget_set_tooltip_text(GTK_WIDGET(self->source_event_box), _("Not connected to PulseAudio server"));
80
gtk_widget_set_sensitive(GTK_WIDGET(self->sink_event_box), FALSE);
81
gtk_widget_set_sensitive(GTK_WIDGET(self->source_event_box), FALSE);
82
gtk_box_pack_start(self->box, self->sink_event_box, FALSE, TRUE, 0);
78
83
gtk_box_pack_start(self->box, self->source_event_box, FALSE, TRUE, 0);
80
self->sink_icon = gtk_image_new_from_icon_name("audio-volume-high", GTK_ICON_SIZE_MENU);
81
self->source_icon = gtk_image_new_from_icon_name("audio-input-microphone", GTK_ICON_SIZE_MENU);
85
self->sink_icon = gtk_image_new_from_icon_name("audio-volume-muted", GTK_ICON_SIZE_MENU);
86
self->source_icon = gtk_image_new_from_icon_name("audio-input-microphone-muted", GTK_ICON_SIZE_MENU);
82
87
gtk_container_add(GTK_CONTAINER(self->sink_event_box), self->sink_icon);
83
88
gtk_container_add(GTK_CONTAINER(self->source_event_box), self->source_icon);
124
129
self->context = pama_pulse_context_new(self->api);
125
130
g_object_connect(self->context,
126
131
"signal::disconnected", pama_applet_pulse_context_disconnected, self,
132
"signal::connected", pama_applet_pulse_context_connected, self,
127
133
"signal::notify", pama_applet_pulse_context_notify, self,
128
134
"signal::sink-added", pama_applet_io_devs_changed, self,
129
135
"signal::sink-removed", pama_applet_io_devs_changed, self,
143
static void pama_applet_pulse_context_connected(PamaPulseContext *context, gpointer data)
145
PamaApplet *self = data;
147
gtk_widget_set_sensitive(GTK_WIDGET(self->sink_event_box), TRUE);
148
gtk_widget_set_sensitive(GTK_WIDGET(self->source_event_box), TRUE);
149
gtk_widget_set_tooltip_text(GTK_WIDGET(self->sink_event_box), _("No information received yet"));
150
gtk_widget_set_tooltip_text(GTK_WIDGET(self->source_event_box), _("No information received yet"));
137
153
static void pama_applet_pulse_context_disconnected(PamaPulseContext *context, gpointer data)
139
155
PamaApplet *self = data;
147
163
if (self->sink_popup)
148
164
gtk_widget_destroy(GTK_WIDGET(self->sink_popup));
165
if (self->source_popup)
166
gtk_widget_destroy(GTK_WIDGET(self->source_popup));
168
gtk_image_set_from_icon_name(GTK_IMAGE(self->sink_icon), "audio-volume-muted", GTK_ICON_SIZE_MENU);
169
gtk_image_set_from_icon_name(GTK_IMAGE(self->source_icon), "audio-input-microphone-muted", GTK_ICON_SIZE_MENU);
170
gtk_widget_set_tooltip_text(GTK_WIDGET(self->sink_event_box), _("Not connected to PulseAudio server"));
171
gtk_widget_set_tooltip_text(GTK_WIDGET(self->source_event_box), _("Not connected to PulseAudio server"));
172
gtk_widget_set_sensitive(GTK_WIDGET(self->sink_event_box), FALSE);
173
gtk_widget_set_sensitive(GTK_WIDGET(self->source_event_box), FALSE);
150
175
g_timeout_add_seconds(10, pama_applet_create_context, self);
292
317
gtk_image_set_from_icon_name(GTK_IMAGE(self->sink_icon), "audio-volume-muted", GTK_ICON_SIZE_MENU);
293
gtk_widget_set_tooltip_text(GTK_WIDGET(self->sink_event_box), _("Unable to find default output device"));
318
gtk_widget_set_tooltip_text(GTK_WIDGET(self->sink_event_box), _("No information for the default output device is available"));
296
321
if (self->default_source)
320
345
gtk_image_set_from_icon_name(GTK_IMAGE(self->sink_icon), "audio-input-microphone-muted", GTK_ICON_SIZE_MENU);
321
gtk_widget_set_tooltip_text(GTK_WIDGET(self->sink_event_box), _("Unable to find default input device"));
346
gtk_widget_set_tooltip_text(GTK_WIDGET(self->sink_event_box), _("No information for the default input device is available"));
324
349
gtk_widget_trigger_tooltip_query(GTK_WIDGET(self));