~ubuntu-branches/ubuntu/precise/empathy/precise-proposed-201205180810

« back to all changes in this revision

Viewing changes to src/empathy-streamed-media-window.c

  • Committer: Bazaar Package Importer
  • Author(s): Brian Curtis, Brian Curtis, Ken VanDine
  • Date: 2011-06-01 10:35:24 UTC
  • mfrom: (1.1.70 upstream) (6.3.44 experimental)
  • Revision ID: james.westby@ubuntu.com-20110601103524-wx3wgp71394730jt
Tags: 3.1.1-1ubuntu1
[ Brian Curtis ]
* Merge with Debian experimental, remaining Ubuntu changes:
* debian/control:
  - Drop geoclue/mapping build-depends (they are in Universe)
  - Add Vcz-Bzr link
  - Add Suggests on telepathy-idle
  - Bump telepathy-butterfly, telepathy-haze to recommends
  - Don't recommend the freedesktop sound theme we have an ubuntu one
  - Add build depend for libunity-dev
* debian/rules:
  - Use autoreconf.mk
  - Disable map and location
* debian/empathy.install:
  - Install message indicator configuration
* debian/indicators/empathy:
  - Message indicator configuration
* debian/patches/01_lpi.patch:
  - Add Launchpad integration
* debian/patches/10_use_notify_osd_icons.patch:
  - Use the notify-osd image for new messages
* debian/patches/34_start_raised_execpt_in_session.patch
  - If not started with the session, we should always raise
* debian/patches/36_chat_window_default_size.patch:
  - Make the default chat window size larger
* debian/patches/37_facebook_default.patch:
  - Make facebook the default chat account type
* debian/patches/38_lp_569289.patch
  - Set freenode as default IRC network for new IRC accounts 
* debian/patches/41_unity_launcher_progress.patch
  - Display file transfer progress in the unity launcher

[ Ken VanDine ]
* debian/control
  - build depend on libgcr-3-dev instead of libgcr-dev
  - dropped build depends for libindicate, we will use telepathy-indicator
  - Depend on dconf-gsettings-backend | gsettings-backend
  - Added a Recommends for telepathy-indicator
* +debian/empathy.gsettings-override
  - Added an override for notifications-focus
* debian/patches/series
  - commented out 23_idomessagedialog_for_voip_and_ft.patch, until ido has 
    been ported to gtk3

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
#include <libempathy/empathy-utils.h>
40
40
#include <libempathy-gtk/empathy-avatar-image.h>
41
41
#include <libempathy-gtk/empathy-ui-utils.h>
42
 
#include <libempathy-gtk/empathy-sound.h>
 
42
#include <libempathy-gtk/empathy-sound-manager.h>
43
43
#include <libempathy-gtk/empathy-geometry.h>
44
44
#include <libempathy-gtk/empathy-images.h>
45
45
 
48
48
 
49
49
#include "empathy-streamed-media-window.h"
50
50
#include "empathy-streamed-media-window-fullscreen.h"
51
 
#include "empathy-sidebar.h"
52
51
#include "empathy-video-widget.h"
53
52
#include "empathy-audio-src.h"
54
53
#include "empathy-audio-sink.h"
55
54
#include "empathy-video-src.h"
 
55
#include "ev-sidebar.h"
56
56
 
57
57
#define BUTTON_ID "empathy-call-dtmf-button-id"
58
58
 
134
134
  GtkWidget *pane;
135
135
  GtkAction *redial;
136
136
  GtkAction *menu_fullscreen;
137
 
  GtkAction *action_camera;
138
 
  GtkAction *action_camera_preview;
 
137
  GtkAction *action_camera_on;
139
138
  GtkWidget *tool_button_camera_off;
140
139
  GtkWidget *tool_button_camera_preview;
141
140
  GtkWidget *tool_button_camera_on;
189
188
  GstElement *video_tee;
190
189
 
191
190
  GstElement *funnel;
 
191
  GstElement *liveadder;
192
192
 
193
193
  FsElementAddedNotifier *fsnotifier;
194
194
 
219
219
  gboolean start_call_when_playing;
220
220
  /* TRUE if we requested to set the pipeline in the playing state */
221
221
  gboolean pipeline_playing;
 
222
 
 
223
  EmpathySoundManager *sound_mgr;
222
224
};
223
225
 
224
226
#define GET_PRIV(o) \
243
245
static void empathy_streamed_media_window_mic_toggled_cb (
244
246
  GtkToggleToolButton *toggle, EmpathyStreamedMediaWindow *window);
245
247
 
246
 
static void empathy_streamed_media_window_sidebar_hidden_cb (EmpathySidebar *sidebar,
 
248
static void empathy_streamed_media_window_sidebar_hidden_cb (EvSidebar *sidebar,
247
249
  EmpathyStreamedMediaWindow *window);
248
250
 
249
 
static void empathy_streamed_media_window_sidebar_shown_cb (EmpathySidebar *sidebar,
 
251
static void empathy_streamed_media_window_sidebar_shown_cb (EvSidebar *sidebar,
250
252
  EmpathyStreamedMediaWindow *window);
251
253
 
252
254
static void empathy_streamed_media_window_hangup_cb (gpointer object,
601
603
 
602
604
  priv->volume_progress_bar = gtk_progress_bar_new ();
603
605
 
604
 
  gtk_progress_bar_set_orientation (
605
 
      GTK_PROGRESS_BAR (priv->volume_progress_bar),
606
 
      GTK_PROGRESS_BOTTOM_TO_TOP);
 
606
  gtk_orientable_set_orientation (GTK_ORIENTABLE (priv->volume_progress_bar),
 
607
      GTK_ORIENTATION_VERTICAL);
607
608
 
608
609
  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (priv->volume_progress_bar),
609
610
      0);
638
639
}
639
640
 
640
641
static void
 
642
create_audio_output (EmpathyStreamedMediaWindow *self)
 
643
{
 
644
  EmpathyStreamedMediaWindowPriv *priv = GET_PRIV (self);
 
645
 
 
646
  g_assert (priv->audio_output == NULL);
 
647
  priv->audio_output = empathy_audio_sink_new ();
 
648
  gst_object_ref (priv->audio_output);
 
649
  gst_object_sink (priv->audio_output);
 
650
}
 
651
 
 
652
static void
641
653
create_video_input (EmpathyStreamedMediaWindow *self)
642
654
{
643
655
  EmpathyStreamedMediaWindowPriv *priv = GET_PRIV (self);
798
810
  priv->call_state = CONNECTING;
799
811
 
800
812
  if (priv->outgoing)
801
 
    empathy_sound_start_playing (GTK_WIDGET (window),
 
813
    empathy_sound_manager_start_playing (priv->sound_mgr, GTK_WIDGET (window),
802
814
        EMPATHY_SOUND_PHONE_OUTGOING, MS_BETWEEN_RING);
803
815
}
804
816
 
825
837
 
826
838
  gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (
827
839
      priv->tool_button_camera_off), TRUE);
828
 
  gtk_radio_action_set_current_value (GTK_RADIO_ACTION (priv->action_camera),
 
840
  gtk_radio_action_set_current_value (GTK_RADIO_ACTION (priv->action_camera_on),
829
841
      CAMERA_STATE_OFF);
830
842
  unblock_camera_control_signals (self);
831
843
 
882
894
 
883
895
  gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (
884
896
        priv->tool_button_camera_preview), TRUE);
885
 
  gtk_radio_action_set_current_value (GTK_RADIO_ACTION (priv->action_camera),
 
897
  gtk_radio_action_set_current_value (GTK_RADIO_ACTION (priv->action_camera_on),
886
898
      CAMERA_STATE_PREVIEW);
887
899
  unblock_camera_control_signals (self);
888
900
 
938
950
 
939
951
  gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (
940
952
      priv->tool_button_camera_on), TRUE);
941
 
  gtk_radio_action_set_current_value (GTK_RADIO_ACTION (priv->action_camera),
 
953
  gtk_radio_action_set_current_value (GTK_RADIO_ACTION (priv->action_camera_on),
942
954
      CAMERA_STATE_ON);
943
955
  unblock_camera_control_signals (self);
944
956
 
1043
1055
    "camera_off", &priv->tool_button_camera_off,
1044
1056
    "camera_preview", &priv->tool_button_camera_preview,
1045
1057
    "camera_on", &priv->tool_button_camera_on,
1046
 
    "action_camera_off",  &priv->action_camera,
1047
 
    "action_camera_preview",  &priv->action_camera_preview,
 
1058
    "action_camera_on",  &priv->action_camera_on,
1048
1059
    "details_vbox",  &priv->details_vbox,
1049
1060
    "vcodec_encoding_label", &priv->vcodec_encoding_label,
1050
1061
    "acodec_encoding_label", &priv->acodec_encoding_label,
1071
1082
    "camera_off", "toggled", tool_button_camera_off_toggled_cb,
1072
1083
    "camera_preview", "toggled", tool_button_camera_preview_toggled_cb,
1073
1084
    "camera_on", "toggled", tool_button_camera_on_toggled_cb,
1074
 
    "action_camera_off", "changed", action_camera_change_cb,
 
1085
    "action_camera_on", "changed", action_camera_change_cb,
1075
1086
    NULL);
1076
1087
 
1077
1088
  gtk_action_set_sensitive (priv->menu_fullscreen, FALSE);
1120
1131
  create_pipeline (self);
1121
1132
  create_video_output_widget (self);
1122
1133
  create_audio_input (self);
 
1134
  create_audio_output (self);
1123
1135
  create_video_input (self);
1124
1136
 
1125
1137
  priv->fsnotifier = fs_element_added_notifier_new ();
1162
1174
  gtk_box_pack_end (GTK_BOX (priv->vbox), h, FALSE, FALSE, 3);
1163
1175
  gtk_box_pack_end (GTK_BOX (h), priv->sidebar_button, FALSE, FALSE, 3);
1164
1176
 
1165
 
  priv->sidebar = empathy_sidebar_new ();
 
1177
  priv->sidebar = ev_sidebar_new ();
1166
1178
  g_signal_connect (G_OBJECT (priv->sidebar),
1167
1179
    "hide", G_CALLBACK (empathy_streamed_media_window_sidebar_hidden_cb), self);
1168
1180
  g_signal_connect (G_OBJECT (priv->sidebar),
1170
1182
  gtk_paned_pack2 (GTK_PANED (priv->pane), priv->sidebar, FALSE, FALSE);
1171
1183
 
1172
1184
  page = empathy_streamed_media_window_create_audio_input (self);
1173
 
  empathy_sidebar_add_page (EMPATHY_SIDEBAR (priv->sidebar),
 
1185
  ev_sidebar_add_page (EV_SIDEBAR (priv->sidebar), "audio-input",
1174
1186
      _("Audio input"), page);
1175
1187
 
1176
1188
  page = empathy_streamed_media_window_create_video_input (self);
1177
 
  empathy_sidebar_add_page (EMPATHY_SIDEBAR (priv->sidebar),
 
1189
  ev_sidebar_add_page (EV_SIDEBAR (priv->sidebar), "video-input",
1178
1190
      _("Video input"), page);
1179
1191
 
1180
1192
  priv->dtmf_panel = empathy_streamed_media_window_create_dtmf (self);
1181
 
  empathy_sidebar_add_page (EMPATHY_SIDEBAR (priv->sidebar),
 
1193
  ev_sidebar_add_page (EV_SIDEBAR (priv->sidebar), "dialpad",
1182
1194
      _("Dialpad"), priv->dtmf_panel);
1183
1195
 
1184
1196
  gtk_widget_set_sensitive (priv->dtmf_panel, FALSE);
1189
1201
  gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scroll),
1190
1202
      priv->details_vbox);
1191
1203
 
1192
 
  empathy_sidebar_add_page (EMPATHY_SIDEBAR (priv->sidebar), _("Details"),
1193
 
    scroll);
 
1204
  ev_sidebar_add_page (EV_SIDEBAR (priv->sidebar), "details",
 
1205
      _("Details"), scroll);
1194
1206
 
1195
1207
  gtk_widget_show_all (top_vbox);
1196
1208
 
1219
1231
  g_object_ref (priv->ui_manager);
1220
1232
  g_object_unref (gui);
1221
1233
 
 
1234
  priv->sound_mgr = empathy_sound_manager_dup_singleton ();
 
1235
 
1222
1236
  empathy_geometry_bind (GTK_WINDOW (self), "call-window");
1223
1237
}
1224
1238
 
1719
1733
    g_object_unref (priv->audio_input);
1720
1734
  priv->audio_input = NULL;
1721
1735
 
 
1736
  if (priv->audio_output != NULL)
 
1737
    g_object_unref (priv->audio_output);
 
1738
  priv->audio_output = NULL;
 
1739
 
1722
1740
  if (priv->video_tee != NULL)
1723
1741
    g_object_unref (priv->video_tee);
1724
1742
  priv->video_tee = NULL;
1725
1743
 
 
1744
  if (priv->liveadder != NULL)
 
1745
    gst_object_unref (priv->liveadder);
 
1746
  priv->liveadder = NULL;
 
1747
 
1726
1748
  if (priv->fsnotifier != NULL)
1727
1749
    g_object_unref (priv->fsnotifier);
1728
1750
  priv->fsnotifier = NULL;
1747
1769
      priv->contact = NULL;
1748
1770
    }
1749
1771
 
 
1772
  tp_clear_object (&priv->sound_mgr);
 
1773
 
1750
1774
  /* release any references held by the object here */
1751
1775
  if (G_OBJECT_CLASS (empathy_streamed_media_window_parent_class)->dispose)
1752
1776
    G_OBJECT_CLASS (empathy_streamed_media_window_parent_class)->dispose (object);
1853
1877
        gtk_widget_destroy (priv->video_preview);
1854
1878
      priv->video_preview = NULL;
1855
1879
 
 
1880
      priv->liveadder = NULL;
1856
1881
      priv->funnel = NULL;
1857
1882
 
1858
1883
      create_pipeline (self);
1876
1901
{
1877
1902
  EmpathyStreamedMediaWindowPriv *priv = GET_PRIV (self);
1878
1903
 
1879
 
  gtk_label_set_text (GTK_LABEL (priv->vcodec_encoding_label), _("Unknown"));
1880
 
  gtk_label_set_text (GTK_LABEL (priv->acodec_encoding_label), _("Unknown"));
1881
 
  gtk_label_set_text (GTK_LABEL (priv->vcodec_decoding_label), _("Unknown"));
1882
 
  gtk_label_set_text (GTK_LABEL (priv->acodec_decoding_label), _("Unknown"));
 
1904
  /* translators: encoding video codec is unknown */
 
1905
  gtk_label_set_text (GTK_LABEL (priv->vcodec_encoding_label),
 
1906
      C_("encoding video codec", "Unknown"));
 
1907
  /* translators: encoding audio codec is unknown */
 
1908
  gtk_label_set_text (GTK_LABEL (priv->acodec_encoding_label),
 
1909
      C_("encoding audio codec", "Unknown"));
 
1910
  /* translators: decoding video codec is unknown */
 
1911
  gtk_label_set_text (GTK_LABEL (priv->vcodec_decoding_label),
 
1912
      C_("decoding video codec", "Unknown"));
 
1913
  /* translators: decoding audio codec is unknown */
 
1914
  gtk_label_set_text (GTK_LABEL (priv->acodec_decoding_label),
 
1915
      C_("decoding audio codec", "Unknown"));
1883
1916
}
1884
1917
 
1885
1918
static gboolean
1898
1931
  could_reset_pipeline = empathy_streamed_media_window_reset_pipeline (self);
1899
1932
 
1900
1933
  if (priv->call_state == CONNECTING)
1901
 
      empathy_sound_stop (EMPATHY_SOUND_PHONE_OUTGOING);
 
1934
      empathy_sound_manager_stop (priv->sound_mgr,
 
1935
          EMPATHY_SOUND_PHONE_OUTGOING);
1902
1936
 
1903
1937
  if (priv->call_state != REDIALING)
1904
1938
    priv->call_state = DISCONNECTED;
1927
1961
 
1928
1962
      /* Unsensitive the camera and mic button */
1929
1963
      gtk_widget_set_sensitive (priv->tool_button_camera_on, FALSE);
 
1964
      gtk_action_set_sensitive (priv->action_camera_on, FALSE);
1930
1965
      gtk_widget_set_sensitive (priv->mic_button, FALSE);
1931
1966
 
1932
1967
      /* Be sure that the mic button is enabled */
2016
2051
    }
2017
2052
  else if (media_type == TP_MEDIA_STREAM_TYPE_AUDIO)
2018
2053
    {
2019
 
      if (priv->audio_output != NULL)
 
2054
      if (priv->liveadder != NULL)
2020
2055
        {
2021
2056
          gst_element_set_state (priv->audio_output, GST_STATE_NULL);
 
2057
          gst_element_set_state (priv->liveadder, GST_STATE_NULL);
2022
2058
 
2023
2059
          gst_bin_remove (GST_BIN (priv->pipeline), priv->audio_output);
2024
 
          priv->audio_output = NULL;
 
2060
          gst_bin_remove (GST_BIN (priv->pipeline), priv->liveadder);
 
2061
          priv->liveadder = NULL;
2025
2062
        }
2026
2063
    }
2027
2064
}
2113
2150
{
2114
2151
  EmpathyStreamedMediaWindowPriv *priv = GET_PRIV (self);
2115
2152
  GstPad *pad;
2116
 
  GstPadTemplate *template;
 
2153
  GstElement *filter;
 
2154
  GError *gerror = NULL;
2117
2155
 
2118
 
  if (priv->audio_output == NULL)
 
2156
  if (priv->liveadder == NULL)
2119
2157
    {
2120
 
      priv->audio_output = empathy_audio_sink_new ();
 
2158
      priv->liveadder = gst_element_factory_make ("liveadder", NULL);
2121
2159
 
 
2160
      if (!gst_bin_add (GST_BIN (priv->pipeline), priv->liveadder))
 
2161
        {
 
2162
          g_warning ("Could not add liveadder to the pipeline");
 
2163
          goto error_add_liveadder;
 
2164
        }
2122
2165
      if (!gst_bin_add (GST_BIN (priv->pipeline), priv->audio_output))
2123
2166
        {
2124
2167
          g_warning ("Could not add audio sink to pipeline");
2125
 
          g_object_unref (priv->audio_output);
2126
2168
          goto error_add_output;
2127
2169
        }
2128
2170
 
 
2171
      if (gst_element_set_state (priv->liveadder, GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE)
 
2172
        {
 
2173
          g_warning ("Could not start liveadder");
 
2174
          goto error;
 
2175
        }
 
2176
 
2129
2177
      if (gst_element_set_state (priv->audio_output, GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE)
2130
2178
        {
2131
2179
          g_warning ("Could not start audio sink");
2132
2180
          goto error;
2133
2181
        }
2134
 
    }
2135
 
 
2136
 
  template = gst_element_class_get_pad_template (
2137
 
    GST_ELEMENT_GET_CLASS (priv->audio_output), "sink%d");
2138
 
 
2139
 
  pad = gst_element_request_pad (priv->audio_output,
2140
 
    template, NULL, NULL);
 
2182
 
 
2183
      if (GST_PAD_LINK_FAILED (
 
2184
              gst_element_link (priv->liveadder, priv->audio_output)))
 
2185
        {
 
2186
          g_warning ("Could not link liveadder to audio output");
 
2187
          goto error;
 
2188
        }
 
2189
    }
 
2190
 
 
2191
  filter = gst_parse_bin_from_description (
 
2192
      "audioconvert ! audioresample ! audioconvert", TRUE, &gerror);
 
2193
  if (filter == NULL)
 
2194
    {
 
2195
      g_warning ("Could not make audio conversion filter: %s", gerror->message);
 
2196
      g_clear_error (&gerror);
 
2197
      goto error;
 
2198
    }
 
2199
 
 
2200
  if (!gst_bin_add (GST_BIN (priv->pipeline), filter))
 
2201
    {
 
2202
      g_warning ("Could not add audio conversion filter to pipeline");
 
2203
      gst_object_unref (filter);
 
2204
      goto error;
 
2205
    }
 
2206
 
 
2207
  if (gst_element_set_state (filter, GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE)
 
2208
    {
 
2209
      g_warning ("Could not start audio conversion filter");
 
2210
      goto error_filter;
 
2211
    }
 
2212
 
 
2213
  if (!gst_element_link (filter, priv->liveadder))
 
2214
    {
 
2215
      g_warning ("Could not link audio conversion filter to liveadder");
 
2216
      goto error_filter;
 
2217
    }
 
2218
 
 
2219
  pad = gst_element_get_static_pad (filter, "sink");
2141
2220
 
2142
2221
  if (pad == NULL)
2143
2222
    {
2144
 
      g_warning ("Could not get sink pad from sink");
2145
 
      return NULL;
 
2223
      g_warning ("Could not get sink pad from filter");
 
2224
      goto error_filter;
2146
2225
    }
2147
2226
 
2148
2227
  return pad;
2149
2228
 
2150
 
error:
 
2229
 error_filter:
 
2230
 
 
2231
  gst_element_set_locked_state (filter, TRUE);
 
2232
  gst_element_set_state (filter, GST_STATE_NULL);
 
2233
  gst_bin_remove (GST_BIN (priv->pipeline), filter);
 
2234
 
 
2235
 error:
 
2236
 
 
2237
  gst_element_set_locked_state (priv->liveadder, TRUE);
2151
2238
  gst_element_set_locked_state (priv->audio_output, TRUE);
 
2239
 
 
2240
  gst_element_set_state (priv->liveadder, GST_STATE_NULL);
2152
2241
  gst_element_set_state (priv->audio_output, GST_STATE_NULL);
 
2242
 
2153
2243
  gst_bin_remove (GST_BIN (priv->pipeline), priv->audio_output);
2154
 
  priv->audio_output = NULL;
2155
 
 
2156
 
error_add_output:
 
2244
 
 
2245
 error_add_output:
 
2246
 
 
2247
  gst_bin_remove (GST_BIN (priv->pipeline), priv->liveadder);
 
2248
 
 
2249
  gst_element_set_locked_state (priv->liveadder, FALSE);
 
2250
  gst_element_set_locked_state (priv->audio_output, FALSE);
 
2251
 
 
2252
 error_add_liveadder:
 
2253
 
 
2254
  if (priv->liveadder != NULL)
 
2255
    {
 
2256
      gst_object_unref (priv->liveadder);
 
2257
      priv->liveadder = NULL;
 
2258
    }
2157
2259
 
2158
2260
  return NULL;
2159
2261
}
2374
2476
  EmpathyTpStreamedMedia *call;
2375
2477
  gboolean can_send_video;
2376
2478
 
2377
 
  empathy_sound_stop (EMPATHY_SOUND_PHONE_OUTGOING);
 
2479
  empathy_sound_manager_stop (priv->sound_mgr, EMPATHY_SOUND_PHONE_OUTGOING);
2378
2480
 
2379
2481
  can_send_video = priv->video_input != NULL && priv->contact != NULL &&
2380
2482
    empathy_contact_can_voip_video (priv->contact);
2398
2500
      GTK_TOGGLE_TOOL_BUTTON (priv->tool_button_camera_on),
2399
2501
      priv->sending_video && priv->video_input != NULL);
2400
2502
  gtk_widget_set_sensitive (priv->tool_button_camera_on, can_send_video);
 
2503
  gtk_action_set_sensitive (priv->action_camera_on, can_send_video);
2401
2504
 
2402
2505
  gtk_action_set_sensitive (priv->redial, FALSE);
2403
2506
  gtk_widget_set_sensitive (priv->redial_button, FALSE);
2599
2702
  priv->video_preview = NULL;
2600
2703
 
2601
2704
  gtk_widget_set_sensitive (priv->tool_button_camera_on, FALSE);
 
2705
  gtk_action_set_sensitive (priv->action_camera_on, FALSE);
2602
2706
  gtk_widget_set_sensitive (priv->tool_button_camera_preview, FALSE);
2603
2707
}
2604
2708
 
2802
2906
    }
2803
2907
 
2804
2908
  if (priv->call_state == CONNECTING)
2805
 
    empathy_sound_stop (EMPATHY_SOUND_PHONE_OUTGOING);
 
2909
    empathy_sound_manager_stop (priv->sound_mgr, EMPATHY_SOUND_PHONE_OUTGOING);
2806
2910
 
2807
2911
  return FALSE;
2808
2912
}
3009
3113
}
3010
3114
 
3011
3115
static void
3012
 
empathy_streamed_media_window_sidebar_hidden_cb (EmpathySidebar *sidebar,
 
3116
empathy_streamed_media_window_sidebar_hidden_cb (EvSidebar *sidebar,
3013
3117
  EmpathyStreamedMediaWindow *window)
3014
3118
{
3015
3119
  EmpathyStreamedMediaWindowPriv *priv = GET_PRIV (window);
3019
3123
}
3020
3124
 
3021
3125
static void
3022
 
empathy_streamed_media_window_sidebar_shown_cb (EmpathySidebar *sidebar,
 
3126
empathy_streamed_media_window_sidebar_shown_cb (EvSidebar *sidebar,
3023
3127
  EmpathyStreamedMediaWindow *window)
3024
3128
{
3025
3129
  EmpathyStreamedMediaWindowPriv *priv = GET_PRIV (window);
3127
3231
{
3128
3232
  EmpathyStreamedMediaWindowPriv *priv = GET_PRIV (window);
3129
3233
 
3130
 
  if (priv->is_fullscreen && event->keyval == GDK_Escape)
 
3234
  if (priv->is_fullscreen && event->keyval == GDK_KEY_Escape)
3131
3235
    {
3132
3236
      /* Since we are in fullscreen mode, toggling will bring us back to
3133
3237
         normal mode. */
3213
3317
      tool_button_camera_preview_toggled_cb, self);
3214
3318
  g_signal_handlers_block_by_func (priv->tool_button_camera_on,
3215
3319
      tool_button_camera_on_toggled_cb, self);
3216
 
  g_signal_handlers_block_by_func (priv->action_camera,
 
3320
  g_signal_handlers_block_by_func (priv->action_camera_on,
3217
3321
      action_camera_change_cb, self);
3218
3322
}
3219
3323
 
3228
3332
      tool_button_camera_preview_toggled_cb, self);
3229
3333
  g_signal_handlers_unblock_by_func (priv->tool_button_camera_on,
3230
3334
      tool_button_camera_on_toggled_cb, self);
3231
 
  g_signal_handlers_unblock_by_func (priv->action_camera,
 
3335
  g_signal_handlers_unblock_by_func (priv->action_camera_on,
3232
3336
      action_camera_change_cb, self);
3233
3337
}