| 309 purple_prefs_add_path(PIDGIN_PREFS_ROOT "/sound/file/got_attention", ""); |
309 purple_prefs_add_path(PIDGIN_PREFS_ROOT "/sound/file/got_attention", ""); |
| 310 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/sound/conv_focus", TRUE); |
310 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/sound/conv_focus", TRUE); |
| 311 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/sound/mute", FALSE); |
311 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/sound/mute", FALSE); |
| 312 purple_prefs_add_path(PIDGIN_PREFS_ROOT "/sound/command", ""); |
312 purple_prefs_add_path(PIDGIN_PREFS_ROOT "/sound/command", ""); |
| 313 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/sound/method", "automatic"); |
313 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/sound/method", "automatic"); |
| 314 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/sound/volume", 50); |
|
| 315 |
314 |
| 316 #ifdef USE_GSTREAMER |
315 #ifdef USE_GSTREAMER |
| 317 purple_debug_info("sound", "Initializing sound output drivers.\n"); |
316 purple_debug_info("sound", "Initializing sound output drivers.\n"); |
| 318 gst_registry_fork_set_enabled(FALSE); |
317 gst_registry_fork_set_enabled(FALSE); |
| 319 if ((gst_init_failed = !gst_init_check(NULL, NULL, &error))) { |
318 if ((gst_init_failed = !gst_init_check(NULL, NULL, &error))) { |
| 520 #endif /* _WIN32 */ |
518 #endif /* _WIN32 */ |
| 521 |
519 |
| 522 #ifdef USE_GSTREAMER |
520 #ifdef USE_GSTREAMER |
| 523 if (gst_init_failed) /* Perhaps do gdk_beep instead? */ |
521 if (gst_init_failed) /* Perhaps do gdk_beep instead? */ |
| 524 return; |
522 return; |
| 525 volume = (float)(CLAMP(purple_prefs_get_int(PIDGIN_PREFS_ROOT "/sound/volume"),0,100)) / 50; |
|
| 526 #ifdef _WIN32 |
523 #ifdef _WIN32 |
| 527 if (!strcmp(method, "automatic")) { |
524 if (!strcmp(method, "automatic")) { |
| 528 sink = gst_element_factory_make("directsoundsink", "sink"); |
525 sink = gst_element_factory_make("directsoundsink", "sink"); |
| 529 if (sink == NULL) |
526 if (sink == NULL) |
| 530 sink = gst_element_factory_make("waveformsink", "sink"); |
527 sink = gst_element_factory_make("waveformsink", "sink"); |
| 566 #else |
563 #else |
| 567 uri = g_strdup_printf("file://%s", filename); |
564 uri = g_strdup_printf("file://%s", filename); |
| 568 #endif |
565 #endif |
| 569 |
566 |
| 570 g_object_set(G_OBJECT(play), "uri", uri, |
567 g_object_set(G_OBJECT(play), "uri", uri, |
| 571 "volume", volume, |
|
| 572 "audio-sink", sink, NULL); |
568 "audio-sink", sink, NULL); |
| 573 |
569 |
| 574 bus = gst_pipeline_get_bus(GST_PIPELINE(play)); |
570 bus = gst_pipeline_get_bus(GST_PIPELINE(play)); |
| 575 gst_bus_add_watch(bus, bus_call, play); |
571 gst_bus_add_watch(bus, bus_call, play); |
| 576 |
572 |