adium 3043:cd0d54bfe668: Set the type of media (audio or video) ...

commits at adium.im commits at adium.im
Thu Dec 10 07:30:35 UTC 2009


details:	http://hg.adium.im/adium/rev/cd0d54bfe668
revision:	3043:cd0d54bfe668
author:		Zachary West <zacw at adium.im>
date:		Thu Dec 10 02:30:27 2009 -0500

Set the type of media (audio or video) for each AIMedia.

diffs (222 lines):

diff -r b4714680eb6a -r cd0d54bfe668 Frameworks/Adium Framework/Source/AIMedia.h
--- a/Frameworks/Adium Framework/Source/AIMedia.h	Thu Dec 10 02:24:36 2009 -0500
+++ b/Frameworks/Adium Framework/Source/AIMedia.h	Thu Dec 10 02:30:27 2009 -0500
@@ -18,11 +18,13 @@
 	CGFloat			sendProgress;
 	CGFloat			receiveProgress;
 	
+	AIMediaType		mediaType;
 	AIMediaState	mediaState;
 }
 
 @property (assign, nonatomic) id protocolInfo;
 
+ at property (readwrite, nonatomic) AIMediaType mediaType;
 @property (readwrite, nonatomic) AIMediaState mediaState;
 @property (readwrite, nonatomic) CGFloat sendProgress;
 @property (readwrite, nonatomic) CGFloat receiveProgress;
diff -r b4714680eb6a -r cd0d54bfe668 Frameworks/Adium Framework/Source/AIMedia.m
--- a/Frameworks/Adium Framework/Source/AIMedia.m	Thu Dec 10 02:24:36 2009 -0500
+++ b/Frameworks/Adium Framework/Source/AIMedia.m	Thu Dec 10 02:30:27 2009 -0500
@@ -24,7 +24,7 @@
 								onAccount:inAccount] autorelease];
 }
 
- at synthesize listContact, mediaState, account, protocolInfo, sendProgress, receiveProgress;
+ at synthesize listContact, mediaType, mediaState, account, protocolInfo, sendProgress, receiveProgress;
 
 - (id)initWithContact:(AIListContact *)inListContact
 			  onAccount:(AIAccount *)inAccount
diff -r b4714680eb6a -r cd0d54bfe668 Frameworks/Adium Framework/Source/AIMediaControllerProtocol.h
--- a/Frameworks/Adium Framework/Source/AIMediaControllerProtocol.h	Thu Dec 10 02:24:36 2009 -0500
+++ b/Frameworks/Adium Framework/Source/AIMediaControllerProtocol.h	Thu Dec 10 02:30:27 2009 -0500
@@ -9,6 +9,11 @@
 #import <Adium/AIControllerProtocol.h>
 
 typedef enum {
+	AIMediaTypeAudio,
+	AIMediaTypeVideo
+} AIMediaType;
+
+typedef enum {
 	AIMediaStateWaiting = 1, 	/* Waiting for response */
 	AIMediaStateRequested,		/* Got request */
 	AIMediaStateAccepted,		/* Accepted call */
diff -r b4714680eb6a -r cd0d54bfe668 Plugins/Purple Service/adiumPurpleMedia.m
--- a/Plugins/Purple Service/adiumPurpleMedia.m	Thu Dec 10 02:24:36 2009 -0500
+++ b/Plugins/Purple Service/adiumPurpleMedia.m	Thu Dec 10 02:30:27 2009 -0500
@@ -54,7 +54,7 @@
 
 typedef struct
 {
-	AdiumMedia *gtkmedia;
+	AIMedia *adiumMedia;
 	gchar *session_id;
 	gchar *participant;
 } AdiumMediaRealizeData;
@@ -106,110 +106,11 @@
 #error error message
 }
 
-static GtkWidget *
-adium_media_add_audio_widget(AdiumMedia *gtkmedia,
-		PurpleMediaSessionType type)
-{
-	GtkWidget *volume_widget, *progress_parent, *volume, *progress;
-	double value;
-
-	if (type & PURPLE_MEDIA_SEND_AUDIO) {
-		value = purple_prefs_get_int(
-			"/purple/media/audio/volume/input");
-	} else if (type & PURPLE_MEDIA_RECV_AUDIO) {
-		value = purple_prefs_get_int(
-			"/purple/media/audio/volume/output");
-	} else
-		g_return_val_if_reached(NULL);
-
-#if GTK_CHECK_VERSION(2,12,0)
-	/* Setup widget structure */
-	volume_widget = gtk_hbox_new(FALSE, ADIUM_HIG_BOX_SPACE);
-	progress_parent = gtk_vbox_new(FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(volume_widget),
-			progress_parent, TRUE, TRUE, 0);
-
-	/* Volume button */
-	volume = gtk_volume_button_new();
-	gtk_scale_button_set_value(GTK_SCALE_BUTTON(volume), value/100.0);
-	gtk_box_pack_end(GTK_BOX(volume_widget),
-			volume, FALSE, FALSE, 0);
-#else
-	/* Setup widget structure */
-	volume_widget = gtk_vbox_new(FALSE, 0);
-	progress_parent = volume_widget;
-
-	/* Volume slider */
-	volume = gtk_hscale_new_with_range(0.0, 100.0, 5.0);
-	gtk_range_set_increments(GTK_RANGE(volume), 5.0, 25.0);
-	gtk_range_set_value(GTK_RANGE(volume), value);
-	gtk_scale_set_draw_value(GTK_SCALE(volume), FALSE);
-	gtk_box_pack_end(GTK_BOX(volume_widget),
-			volume, TRUE, FALSE, 0);
-#endif
-
-	/* Volume level indicator */
-	progress = gtk_progress_bar_new();
-	gtk_widget_set_size_request(progress, 250, 10);
-	gtk_box_pack_end(GTK_BOX(progress_parent), progress, TRUE, FALSE, 0);
-
-	if (type & PURPLE_MEDIA_SEND_AUDIO) {
-		g_signal_connect (G_OBJECT(volume), "value-changed",
-				G_CALLBACK(adium_media_input_volume_changed),
-				gtkmedia->priv->media);
-		gtkmedia->priv->send_progress = progress;
-	} else if (type & PURPLE_MEDIA_RECV_AUDIO) {
-		g_signal_connect (G_OBJECT(volume), "value-changed",
-				G_CALLBACK(adium_media_output_volume_changed),
-				gtkmedia->priv->media);
-		gtkmedia->priv->recv_progress = progress;
-	}
-
-	gtk_widget_show_all(volume_widget);
-
-	return volume_widget;
-}
-
 static void
 adium_media_ready_cb(PurpleMedia *media, AIMedia *adiumMedia, const gchar *sid)
 {
 	PurpleMediaSessionType type = purple_media_get_session_type(media, sid);
-
-	if (gtkmedia->priv->recv_widget == NULL
-			&& type & (PURPLE_MEDIA_RECV_VIDEO |
-			PURPLE_MEDIA_RECV_AUDIO)) {
-		recv_widget = gtk_vbox_new(FALSE, ADIUM_HIG_BOX_SPACE);	
-		gtk_box_pack_start(GTK_BOX(gtkmedia->priv->display),
-				recv_widget, TRUE, TRUE, 0);
-		gtk_widget_show(recv_widget);
-	} else
-		recv_widget = gtkmedia->priv->recv_widget;
-	if (gtkmedia->priv->send_widget == NULL
-			&& type & (PURPLE_MEDIA_SEND_VIDEO |
-			PURPLE_MEDIA_SEND_AUDIO)) {
-		send_widget = gtk_vbox_new(FALSE, ADIUM_HIG_BOX_SPACE);
-		gtk_box_pack_start(GTK_BOX(gtkmedia->priv->display),
-				send_widget, TRUE, TRUE, 0);
-		button_widget = gtk_hbox_new(FALSE, ADIUM_HIG_BOX_SPACE);
-		gtk_box_pack_end(GTK_BOX(send_widget), button_widget,
-				FALSE, FALSE, 0);
-		gtk_widget_show(GTK_WIDGET(button_widget));
-		gtk_widget_show(send_widget);
-
-		/* Hold button */
-		gtkmedia->priv->hold =
-				gtk_toggle_button_new_with_mnemonic("_Hold");
-		g_signal_connect(gtkmedia->priv->hold, "toggled",
-				G_CALLBACK(adium_media_hold_toggled),
-				gtkmedia);
-		gtk_box_pack_end(GTK_BOX(button_widget), gtkmedia->priv->hold,
-				FALSE, FALSE, 0);
-		gtk_widget_show(gtkmedia->priv->hold);
-	} else {
-		send_widget = gtkmedia->priv->send_widget;
-		button_widget = gtkmedia->priv->button_widget;
-	}
-
+	
 	if (type & PURPLE_MEDIA_RECV_VIDEO) {
 		AdiumMediaRealizeData *data;
 		GtkWidget *aspect;
@@ -236,6 +137,7 @@
 
 		gtkmedia->priv->remote_video = remote_video;
 	}
+	
 	if (type & PURPLE_MEDIA_SEND_VIDEO) {
 		AdiumMediaRealizeData *data;
 		GtkWidget *aspect;
@@ -301,34 +203,16 @@
 				gtkmedia);
 	}
 
-	if (send_widget != NULL)
-		gtkmedia->priv->send_widget = send_widget;
-	if (recv_widget != NULL)
-		gtkmedia->priv->recv_widget = recv_widget;
-	if (button_widget != NULL)
-		gtkmedia->priv->button_widget = button_widget;
-
 	if (purple_media_is_initiator(media, sid, NULL) == FALSE) {
 #error XXX Add something to accept or reject this media
 	}
 
 	/* set the window icon according to the type */
 	if (type & PURPLE_MEDIA_VIDEO) {
-		icon = gtk_widget_render_icon(GTK_WIDGET(gtkmedia),
-			ADIUM_STOCK_TOOLBAR_VIDEO_CALL,
-			gtk_icon_size_from_name(ADIUM_ICON_SIZE_TANGO_LARGE), NULL);
+		adiumMedia.mediaType = AIMediaTypeVideo;
 	} else if (type & PURPLE_MEDIA_AUDIO) {
-		icon = gtk_widget_render_icon(GTK_WIDGET(gtkmedia),
-			ADIUM_STOCK_TOOLBAR_AUDIO_CALL,
-			gtk_icon_size_from_name(ADIUM_ICON_SIZE_TANGO_LARGE), NULL);
+		adiumMedia.mediaType = AIMediaTypeAudio;
 	}
-
-	if (icon) {
-		gtk_window_set_icon(GTK_WINDOW(gtkmedia), icon);
-		g_object_unref(icon);
-	}
-	
-	gtk_widget_show(gtkmedia->priv->display);
 }
 
 static void
@@ -354,7 +238,7 @@
 #warning Check for pending accept/deny
 		adiumMedia.mediaState = AIMediaStateAccepted;
 		
-		adium_media_emit_message(gtkmedia, _("Call in progress."));
+#error		adium_media_emit_message(gtkmedia, _("Call in progress."));
 	}
 }
 




More information about the commits mailing list