adium 3041:3bf34a76df9d: Incoming/outgoing progress indicator me...
commits at adium.im
commits at adium.im
Thu Dec 10 07:04:18 UTC 2009
details: http://hg.adium.im/adium/rev/3bf34a76df9d
revision: 3041:3bf34a76df9d
author: Zachary West <zacw at adium.im>
date: Thu Dec 10 02:04:11 2009 -0500
Incoming/outgoing progress indicator methods.
diffs (143 lines):
diff -r 8dc9314899cd -r 3bf34a76df9d Frameworks/Adium Framework/Source/AIMedia.h
--- a/Frameworks/Adium Framework/Source/AIMedia.h Thu Dec 10 01:49:48 2009 -0500
+++ b/Frameworks/Adium Framework/Source/AIMedia.h Thu Dec 10 02:04:11 2009 -0500
@@ -15,12 +15,17 @@
AIListContact *listContact;
id protocolInfo;
+ CGFloat sendProgress;
+ CGFloat receiveProgress;
+
AIMediaState mediaState;
}
@property (assign, nonatomic) id protocolInfo;
@property (readwrite, nonatomic) AIMediaState mediaState;
+ at property (readwrite, nonatomic) CGFloat sendProgress;
+ at property (readwrite, nonatomic) CGFloat receiveProgress;
@property (readwrite, retain, nonatomic) AIAccount *account;
@property (readwrite, retain, nonatomic) AIListContact *listContact;
diff -r 8dc9314899cd -r 3bf34a76df9d Frameworks/Adium Framework/Source/AIMedia.m
--- a/Frameworks/Adium Framework/Source/AIMedia.m Thu Dec 10 01:49:48 2009 -0500
+++ b/Frameworks/Adium Framework/Source/AIMedia.m Thu Dec 10 02:04:11 2009 -0500
@@ -24,7 +24,7 @@
onAccount:inAccount] autorelease];
}
- at synthesize listContact, mediaState, account, protocolInfo;
+ at synthesize listContact, mediaState, account, protocolInfo, sendProgress, receiveProgress;
- (id)initWithContact:(AIListContact *)inListContact
onAccount:(AIAccount *)inAccount
diff -r 8dc9314899cd -r 3bf34a76df9d Plugins/Purple Service/adiumPurpleCore.m
--- a/Plugins/Purple Service/adiumPurpleCore.m Thu Dec 10 01:49:48 2009 -0500
+++ b/Plugins/Purple Service/adiumPurpleCore.m Thu Dec 10 02:04:11 2009 -0500
@@ -30,6 +30,7 @@
#import "adiumPurpleSignals.h"
#import "adiumPurpleWebcam.h"
#import "adiumPurpleCertificateTrustWarning.h"
+#import "adiumPurpleMedia.h"
#import <AdiumLibpurple/SLPurpleCocoaAdapter.h>
#import "AILibpurplePlugin.h"
@@ -217,9 +218,7 @@
adiumPurpleConversation_init();
-#if ENABLE_WEBCAM
- initPurpleWebcamSupport();
-#endif
+ adiumPurpleMedia_init();
load_external_plugins();
}
diff -r 8dc9314899cd -r 3bf34a76df9d Plugins/Purple Service/adiumPurpleMedia.h
--- a/Plugins/Purple Service/adiumPurpleMedia.h Thu Dec 10 01:49:48 2009 -0500
+++ b/Plugins/Purple Service/adiumPurpleMedia.h Thu Dec 10 02:04:11 2009 -0500
@@ -14,4 +14,4 @@
* write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-void adium_medias_init(void);
\ No newline at end of file
+void adiumPurpleMedia_init(void);
diff -r 8dc9314899cd -r 3bf34a76df9d Plugins/Purple Service/adiumPurpleMedia.m
--- a/Plugins/Purple Service/adiumPurpleMedia.m Thu Dec 10 01:49:48 2009 -0500
+++ b/Plugins/Purple Service/adiumPurpleMedia.m Thu Dec 10 02:04:11 2009 -0500
@@ -27,63 +27,31 @@
static void
level_message_cb(PurpleMedia *media, gchar *session_id, gchar *participant,
- double level, AdiumMedia *gtkmedia)
+ double level, AIMedia *adiumMedia)
{
- GtkWidget *progress;
- if (participant == NULL)
- progress = gtkmedia->priv->send_progress;
- else
- progress = gtkmedia->priv->recv_progress;
- gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress), level);
+ if (participant == NULL) {
+ // Send progress
+ [adiumMedia setSendProgress:(CGFloat)level];
+ } else {
+ // Receive progress
+ [adiumMedia setReceiveProgress:(CGFloat)level];
+ }
}
-
+#error Must be called when destroying AIMedia
static void
-adium_media_disconnect_levels(PurpleMedia *media, AdiumMedia *gtkmedia)
+adium_media_disconnect_levels(PurpleMedia *media, AIMedia *adiumMedia)
{
PurpleMediaManager *manager = purple_media_get_manager(media);
GstElement *element = purple_media_manager_get_pipeline(manager);
gulong handler_id = g_signal_handler_find(G_OBJECT(gst_pipeline_get_bus(GST_PIPELINE(element))),
G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0,
- NULL, G_CALLBACK(level_message_cb), gtkmedia);
+ NULL, G_CALLBACK(level_message_cb), adiumMedia);
if (handler_id)
g_signal_handler_disconnect(G_OBJECT(gst_pipeline_get_bus(GST_PIPELINE(element))),
handler_id);
}
-static void
-adium_media_dispose(GObject *media)
-{
- AdiumMedia *gtkmedia = ADIUM_MEDIA(media);
- purple_debug_info("gtkmedia", "adium_media_dispose\n");
-
- if (gtkmedia->priv->media) {
- purple_request_close_with_handle(gtkmedia);
- purple_media_remove_output_windows(gtkmedia->priv->media);
- adium_media_disconnect_levels(gtkmedia->priv->media, gtkmedia);
- g_object_unref(gtkmedia->priv->media);
- gtkmedia->priv->media = NULL;
- }
-
- if (gtkmedia->priv->item_factory) {
- g_object_unref(gtkmedia->priv->item_factory);
- gtkmedia->priv->item_factory = NULL;
- }
-
- G_OBJECT_CLASS(parent_class)->dispose(media);
-}
-
-static void
-adium_media_emit_message(AdiumMedia *gtkmedia, const char *msg)
-{
- PurpleConversation *conv = purple_find_conversation_with_account(
- PURPLE_CONV_TYPE_ANY, gtkmedia->priv->screenname,
- purple_media_get_account(gtkmedia->priv->media));
- if (conv != NULL)
- purple_conversation_write(conv, NULL, msg,
- PURPLE_MESSAGE_SYSTEM, time(NULL));
-}
-
typedef struct
{
AdiumMedia *gtkmedia;
More information about the commits
mailing list