Mercurial > pidgin
comparison pidgin/gtkmedia.c @ 32672:3828a61c44da
A boring and large patch so I can merge heads.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Fri, 23 Dec 2011 08:21:58 +0000 |
parents | e2a1510da13d |
children |
comparison
equal
deleted
inserted
replaced
32671:0e69949b3e61 | 32672:3828a61c44da |
---|---|
38 #ifdef USE_VV | 38 #ifdef USE_VV |
39 #include "media-gst.h" | 39 #include "media-gst.h" |
40 | 40 |
41 #ifdef _WIN32 | 41 #ifdef _WIN32 |
42 #include <gdk/gdkwin32.h> | 42 #include <gdk/gdkwin32.h> |
43 #elif defined(GDK_WINDOWING_QUARTZ) | |
44 #include <gdk/gdkquartz.h> | |
43 #endif | 45 #endif |
44 | 46 |
45 #include <gst/interfaces/xoverlay.h> | 47 #include <gst/interfaces/xoverlay.h> |
46 | 48 |
47 #define PIDGIN_TYPE_MEDIA (pidgin_media_get_type()) | 49 #define PIDGIN_TYPE_MEDIA (pidgin_media_get_type()) |
288 GError *error; | 290 GError *error; |
289 GtkAccelGroup *accel_group; | 291 GtkAccelGroup *accel_group; |
290 GtkWidget *menu; | 292 GtkWidget *menu; |
291 | 293 |
292 action_group = gtk_action_group_new("MediaActions"); | 294 action_group = gtk_action_group_new("MediaActions"); |
295 #ifdef ENABLE_NLS | |
296 gtk_action_group_set_translation_domain(action_group, | |
297 PACKAGE); | |
298 #endif | |
293 gtk_action_group_add_actions(action_group, | 299 gtk_action_group_add_actions(action_group, |
294 menu_entries, | 300 menu_entries, |
295 G_N_ELEMENTS(menu_entries), | 301 G_N_ELEMENTS(menu_entries), |
296 GTK_WINDOW(window)); | 302 GTK_WINDOW(window)); |
297 #ifdef ENABLE_NLS | |
298 gtk_action_group_set_translation_domain(action_group, | |
299 PACKAGE); | |
300 #endif | |
301 | 303 |
302 window->priv->ui = gtk_ui_manager_new(); | 304 window->priv->ui = gtk_ui_manager_new(); |
303 gtk_ui_manager_insert_action_group(window->priv->ui, action_group, 0); | 305 gtk_ui_manager_insert_action_group(window->priv->ui, action_group, 0); |
304 | 306 |
305 accel_group = gtk_ui_manager_get_accel_group(window->priv->ui); | 307 accel_group = gtk_ui_manager_get_accel_group(window->priv->ui); |
453 progress = gtkmedia->priv->send_progress; | 455 progress = gtkmedia->priv->send_progress; |
454 else | 456 else |
455 progress = pidgin_media_get_widget(gtkmedia, session_id, participant); | 457 progress = pidgin_media_get_widget(gtkmedia, session_id, participant); |
456 | 458 |
457 if (progress) | 459 if (progress) |
458 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress), level * 5); | 460 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress), level); |
459 } | 461 } |
460 | 462 |
461 | 463 |
462 static void | 464 static void |
463 pidgin_media_disconnect_levels(PurpleMedia *media, PidginMedia *gtkmedia) | 465 pidgin_media_disconnect_levels(PurpleMedia *media, PidginMedia *gtkmedia) |
557 if (window) { | 559 if (window) { |
558 gulong window_id; | 560 gulong window_id; |
559 #ifdef _WIN32 | 561 #ifdef _WIN32 |
560 window_id = GDK_WINDOW_HWND(window); | 562 window_id = GDK_WINDOW_HWND(window); |
561 #elif defined(HAVE_X11) | 563 #elif defined(HAVE_X11) |
562 window_id = gdk_x11_window_get_xid(window); | 564 window_id = GDK_WINDOW_XWINDOW(window); |
565 #elif defined(GDK_WINDOWING_QUARTZ) | |
566 window_id = (gulong) gdk_quartz_window_get_nsview(window); | |
563 #else | 567 #else |
564 # error "Unsupported windowing system" | 568 # error "Unsupported windowing system" |
565 #endif | 569 #endif |
566 | 570 |
567 purple_media_set_output_window(priv->media, data->session_id, | 571 purple_media_set_output_window(priv->media, data->session_id, |
787 FALSE, TRUE, 0); | 791 FALSE, TRUE, 0); |
788 gtk_widget_show(send_widget); | 792 gtk_widget_show(send_widget); |
789 | 793 |
790 /* Hold button */ | 794 /* Hold button */ |
791 gtkmedia->priv->hold = | 795 gtkmedia->priv->hold = |
792 gtk_toggle_button_new_with_mnemonic("_Hold"); | 796 gtk_toggle_button_new_with_mnemonic(_("_Hold")); |
793 gtk_box_pack_end(GTK_BOX(button_widget), gtkmedia->priv->hold, | 797 gtk_box_pack_end(GTK_BOX(button_widget), gtkmedia->priv->hold, |
794 FALSE, FALSE, 0); | 798 FALSE, FALSE, 0); |
795 gtk_widget_show(gtkmedia->priv->hold); | 799 gtk_widget_show(gtkmedia->priv->hold); |
796 g_signal_connect(gtkmedia->priv->hold, "toggled", | 800 g_signal_connect(gtkmedia->priv->hold, "toggled", |
797 G_CALLBACK(pidgin_media_hold_toggled), | 801 G_CALLBACK(pidgin_media_hold_toggled), |
876 PURPLE_MEDIA_RECV_AUDIO, sid), FALSE, FALSE, 0); | 880 PURPLE_MEDIA_RECV_AUDIO, sid), FALSE, FALSE, 0); |
877 } | 881 } |
878 | 882 |
879 if (type & PURPLE_MEDIA_SEND_AUDIO) { | 883 if (type & PURPLE_MEDIA_SEND_AUDIO) { |
880 gtkmedia->priv->mute = | 884 gtkmedia->priv->mute = |
881 gtk_toggle_button_new_with_mnemonic("_Mute"); | 885 gtk_toggle_button_new_with_mnemonic(_("_Mute")); |
882 gtk_box_pack_end(GTK_BOX(button_widget), gtkmedia->priv->mute, | 886 gtk_box_pack_end(GTK_BOX(button_widget), gtkmedia->priv->mute, |
883 FALSE, FALSE, 0); | 887 FALSE, FALSE, 0); |
884 gtk_widget_show(gtkmedia->priv->mute); | 888 gtk_widget_show(gtkmedia->priv->mute); |
885 g_signal_connect(gtkmedia->priv->mute, "toggled", | 889 g_signal_connect(gtkmedia->priv->mute, "toggled", |
886 G_CALLBACK(pidgin_media_mute_toggled), | 890 G_CALLBACK(pidgin_media_mute_toggled), |
967 if (local == TRUE) | 971 if (local == TRUE) |
968 purple_request_close_with_handle(gtkmedia); | 972 purple_request_close_with_handle(gtkmedia); |
969 pidgin_media_set_state(gtkmedia, PIDGIN_MEDIA_ACCEPTED); | 973 pidgin_media_set_state(gtkmedia, PIDGIN_MEDIA_ACCEPTED); |
970 pidgin_media_emit_message(gtkmedia, _("Call in progress.")); | 974 pidgin_media_emit_message(gtkmedia, _("Call in progress.")); |
971 gtk_statusbar_push(GTK_STATUSBAR(gtkmedia->priv->statusbar), | 975 gtk_statusbar_push(GTK_STATUSBAR(gtkmedia->priv->statusbar), |
972 0, _("Call in progress.")); | 976 0, _("Call in progress")); |
973 gtk_widget_show(GTK_WIDGET(gtkmedia)); | 977 gtk_widget_show(GTK_WIDGET(gtkmedia)); |
974 } | 978 } |
975 } | 979 } |
976 | 980 |
977 static void | 981 static void |
1080 src = gst_element_factory_make("ksvideosrc", NULL); | 1084 src = gst_element_factory_make("ksvideosrc", NULL); |
1081 if (src == NULL) | 1085 if (src == NULL) |
1082 src = gst_element_factory_make("dshowvideosrc", NULL); | 1086 src = gst_element_factory_make("dshowvideosrc", NULL); |
1083 if (src == NULL) | 1087 if (src == NULL) |
1084 src = gst_element_factory_make("autovideosrc", NULL); | 1088 src = gst_element_factory_make("autovideosrc", NULL); |
1089 #elif defined(__APPLE__) | |
1090 src = gst_element_factory_make("osxvideosrc", NULL); | |
1091 if (src == NULL) | |
1092 src = gst_element_factory_make("autovideosrc", NULL); | |
1085 #else | 1093 #else |
1086 src = gst_element_factory_make("gconfvideosrc", NULL); | 1094 src = gst_element_factory_make("gconfvideosrc", NULL); |
1087 if (src == NULL) | 1095 if (src == NULL) |
1088 src = gst_element_factory_make("autovideosrc", NULL); | 1096 src = gst_element_factory_make("autovideosrc", NULL); |
1089 if (src == NULL) | 1097 if (src == NULL) |
1134 src = gst_element_factory_make("alsasrc", NULL); | 1142 src = gst_element_factory_make("alsasrc", NULL); |
1135 if (src == NULL) | 1143 if (src == NULL) |
1136 src = gst_element_factory_make("osssrc", NULL); | 1144 src = gst_element_factory_make("osssrc", NULL); |
1137 if (src == NULL) | 1145 if (src == NULL) |
1138 src = gst_element_factory_make("dshowaudiosrc", NULL); | 1146 src = gst_element_factory_make("dshowaudiosrc", NULL); |
1147 if (src == NULL) | |
1148 src = gst_element_factory_make("osxaudiosrc", NULL); | |
1139 if (src == NULL) { | 1149 if (src == NULL) { |
1140 purple_debug_error("gtkmedia", "Unable to find a suitable " | 1150 purple_debug_error("gtkmedia", "Unable to find a suitable " |
1141 "element for the default audio source.\n"); | 1151 "element for the default audio source.\n"); |
1142 return NULL; | 1152 return NULL; |
1143 } | 1153 } |