Mercurial > pidgin
comparison pidgin/gtkmedia.c @ 26408: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
26407:440e999c27ca | 26408: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); |