comparison pidgin/gtkmedia.c @ 26490:ee0282fe3673

Move volume levels for media to the media window.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Fri, 03 Apr 2009 02:25:30 +0000
parents 70ab418e9d4f
children 7f252e261870
comparison
equal deleted inserted replaced
26489:440e999c27ca 26490:ee0282fe3673
581 g_free(message); 581 g_free(message);
582 return FALSE; 582 return FALSE;
583 } 583 }
584 584
585 static void 585 static void
586 pidgin_media_input_volume_changed(GtkRange *range, PurpleMedia *media)
587 {
588 double val = (double)gtk_range_get_value(GTK_RANGE(range));
589 purple_prefs_set_int("/purple/media/audio/volume/input", val);
590 val /= 10.0;
591 purple_media_set_input_volume(media, NULL, val);
592 }
593
594 static void
595 pidgin_media_output_volume_changed(GtkRange *range, PurpleMedia *media)
596 {
597 double val = (double)gtk_range_get_value(GTK_RANGE(range));
598 purple_prefs_set_int("/purple/media/audio/volume/output", val);
599 val /= 10.0;
600 purple_media_set_output_volume(media, NULL, NULL, val);
601 }
602
603 static void
586 pidgin_media_ready_cb(PurpleMedia *media, PidginMedia *gtkmedia, const gchar *sid) 604 pidgin_media_ready_cb(PurpleMedia *media, PidginMedia *gtkmedia, const gchar *sid)
587 { 605 {
588 PurpleMediaManager *manager = purple_media_get_manager(media); 606 PurpleMediaManager *manager = purple_media_get_manager(media);
589 GstElement *pipeline = purple_media_manager_get_pipeline(manager); 607 GstElement *pipeline = purple_media_manager_get_pipeline(manager);
590 GtkWidget *send_widget = NULL, *recv_widget = NULL; 608 GtkWidget *send_widget = NULL, *recv_widget = NULL;
693 711
694 gtkmedia->priv->local_video = local_video; 712 gtkmedia->priv->local_video = local_video;
695 } 713 }
696 714
697 if (type & PURPLE_MEDIA_RECV_AUDIO) { 715 if (type & PURPLE_MEDIA_RECV_AUDIO) {
716 GtkWidget *volume = gtk_hscale_new_with_range(0.0, 100.0, 5.0);
717 gtk_range_set_increments(GTK_RANGE(volume), 5.0, 25.0);
718 gtk_range_set_value(GTK_RANGE(volume),
719 purple_prefs_get_int(
720 "/purple/media/audio/volume/output"));
721 gtk_scale_set_draw_value(GTK_SCALE(volume), FALSE);
722 g_signal_connect (G_OBJECT(volume), "value-changed",
723 G_CALLBACK(pidgin_media_output_volume_changed),
724 media);
725 gtk_box_pack_end(GTK_BOX(recv_widget),
726 volume, FALSE, FALSE, 0);
727 gtk_widget_show(volume);
728
698 gtkmedia->priv->recv_progress = gtk_progress_bar_new(); 729 gtkmedia->priv->recv_progress = gtk_progress_bar_new();
699 gtk_widget_set_size_request(gtkmedia->priv->recv_progress, 320, 10); 730 gtk_widget_set_size_request(gtkmedia->priv->recv_progress, 320, 10);
700 gtk_box_pack_end(GTK_BOX(recv_widget), 731 gtk_box_pack_end(GTK_BOX(recv_widget),
701 gtkmedia->priv->recv_progress, FALSE, FALSE, 0); 732 gtkmedia->priv->recv_progress, FALSE, FALSE, 0);
702 gtk_widget_show(gtkmedia->priv->recv_progress); 733 gtk_widget_show(gtkmedia->priv->recv_progress);
703 } 734 }
704 if (type & PURPLE_MEDIA_SEND_AUDIO) { 735 if (type & PURPLE_MEDIA_SEND_AUDIO) {
705 GstElement *media_src = purple_media_get_src(media, sid); 736 GstElement *media_src;
737 GtkWidget *volume = gtk_hscale_new_with_range(0.0, 100.0, 5.0);
738 gtk_range_set_increments(GTK_RANGE(volume), 5.0, 25.0);
739 gtk_range_set_value(GTK_RANGE(volume),
740 purple_prefs_get_int(
741 "/purple/media/audio/volume/input"));
742 gtk_scale_set_draw_value(volume, FALSE);
743 gtk_scale_set_draw_value(GTK_SCALE(volume), FALSE);
744 g_signal_connect (G_OBJECT(volume), "value-changed",
745 G_CALLBACK (pidgin_media_input_volume_changed),
746 media);
747 gtk_box_pack_end(GTK_BOX(send_widget),
748 volume, FALSE, FALSE, 0);
749 gtk_widget_show(volume);
750
751 media_src = purple_media_get_src(media, sid);
706 gtkmedia->priv->send_level = gst_bin_get_by_name( 752 gtkmedia->priv->send_level = gst_bin_get_by_name(
707 GST_BIN(media_src), "sendlevel"); 753 GST_BIN(media_src), "sendlevel");
708 754
709 gtkmedia->priv->send_progress = gtk_progress_bar_new(); 755 gtkmedia->priv->send_progress = gtk_progress_bar_new();
710 gtk_widget_set_size_request(gtkmedia->priv->send_progress, 320, 10); 756 gtk_widget_set_size_request(gtkmedia->priv->send_progress, 320, 10);