adium 3042:b4714680eb6a: Some more cleanup to go OS X-y.
commits at adium.im
commits at adium.im
Thu Dec 10 07:24:43 UTC 2009
details: http://hg.adium.im/adium/rev/b4714680eb6a
revision: 3042:b4714680eb6a
author: Zachary West <zacw at adium.im>
date: Thu Dec 10 02:24:36 2009 -0500
Some more cleanup to go OS X-y.
diffs (195 lines):
diff -r 3bf34a76df9d -r b4714680eb6a Plugins/Purple Service/adiumPurpleMedia.m
--- a/Plugins/Purple Service/adiumPurpleMedia.m Thu Dec 10 02:04:11 2009 -0500
+++ b/Plugins/Purple Service/adiumPurpleMedia.m Thu Dec 10 02:24:36 2009 -0500
@@ -95,16 +95,15 @@
}
static void
-adium_media_error_cb(AdiumMedia *media, const char *error, AdiumMedia *gtkmedia)
+adium_media_emit_message(PurpleMedia *media, const char *message, AIMedia *adiumMedia)
{
- 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, error,
- PURPLE_MESSAGE_ERROR, time(NULL));
- gtk_statusbar_push(GTK_STATUSBAR(gtkmedia->priv->statusbar),
- 0, error);
+#error emit message
+}
+
+static void
+adium_media_error_cb(PurpleMedia *media, const char *error, AIMedia *adiumMedia)
+{
+#error error message
}
static GtkWidget *
@@ -172,12 +171,9 @@
}
static void
-adium_media_ready_cb(PurpleMedia *media, AdiumMedia *gtkmedia, const gchar *sid)
+adium_media_ready_cb(PurpleMedia *media, AIMedia *adiumMedia, const gchar *sid)
{
- GtkWidget *send_widget = NULL, *recv_widget = NULL, *button_widget = NULL;
- PurpleMediaSessionType type =
- purple_media_get_session_type(media, sid);
- GdkPixbuf *icon = NULL;
+ PurpleMediaSessionType type = purple_media_get_session_type(media, sid);
if (gtkmedia->priv->recv_widget == NULL
&& type & (PURPLE_MEDIA_RECV_VIDEO |
@@ -336,118 +332,32 @@
}
static void
-adium_media_state_changed_cb(PurpleMedia *media, PurpleMediaState state,
- gchar *sid, gchar *name, AdiumMedia *gtkmedia)
+adium_media_state_changed_cb(PurpleMedia *media, PurpleMediaState state, gchar *sid, gchar *name, AIMedia *adiumMedia)
{
- purple_debug_info("gtkmedia", "state: %d sid: %s name: %s\n",
- state, sid ? sid : "(null)", name ? name : "(null)");
+ AILog(@"state: %d sid: %s name: %s\n", state, sid ? sid : "(null)", name ? name : "(null)");
+
if (sid == NULL && name == NULL) {
if (state == PURPLE_MEDIA_STATE_END) {
- adium_media_emit_message(gtkmedia,
- _("The call has been terminated."));
- gtk_widget_destroy(GTK_WIDGET(gtkmedia));
+#error adium_media_emit_message(adiumMedia, _("The call has been terminated."));
}
- } else if (state == PURPLE_MEDIA_STATE_NEW &&
- sid != NULL && name != NULL) {
- adium_media_ready_cb(media, gtkmedia, sid);
+ } else if (state == PURPLE_MEDIA_STATE_NEW && sid != NULL && name != NULL) {
+ adium_media_ready_cb(media, adiumMedia, sid);
}
}
static void
-adium_media_stream_info_cb(PurpleMedia *media, PurpleMediaInfoType type,
- gchar *sid, gchar *name, gboolean local,
- AdiumMedia *gtkmedia)
+adium_media_stream_info_cb(PurpleMedia *media, PurpleMediaInfoType type, gchar *sid, gchar *name, gboolean local, AIMedia *adiumMedia)
{
if (type == PURPLE_MEDIA_INFO_REJECT) {
- adium_media_emit_message(gtkmedia,
- _("You have rejected the call."));
- } else if (type == PURPLE_MEDIA_INFO_ACCEPT) {
- if (local == TRUE)
- purple_request_close_with_handle(gtkmedia);
- adium_media_set_state(gtkmedia, ADIUM_MEDIA_ACCEPTED);
+#warning adium_media_emit_message(gtkmedia, _("You have rejected the call."));
+ } else if (type == PURPLE_MEDIA_INFO_ACCEPT) {
+#warning Check for pending accept/deny
+ adiumMedia.mediaState = AIMediaStateAccepted;
+
adium_media_emit_message(gtkmedia, _("Call in progress."));
- gtk_statusbar_push(GTK_STATUSBAR(gtkmedia->priv->statusbar),
- 0, _("Call in progress."));
- gtk_widget_show(GTK_WIDGET(gtkmedia));
}
}
-static void
-adium_media_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
-{
- AdiumMedia *media;
- g_return_if_fail(ADIUM_IS_MEDIA(object));
-
- media = ADIUM_MEDIA(object);
- switch (prop_id) {
- case PROP_MEDIA:
- {
- if (media->priv->media)
- g_object_unref(media->priv->media);
- media->priv->media = g_value_get_object(value);
- g_object_ref(media->priv->media);
-
- if (purple_media_is_initiator(media->priv->media,
- NULL, NULL) == TRUE)
- adium_media_set_state(media, ADIUM_MEDIA_WAITING);
- else
- adium_media_set_state(media, ADIUM_MEDIA_REQUESTED);
-
- g_signal_connect(G_OBJECT(media->priv->media), "error",
- G_CALLBACK(adium_media_error_cb), media);
- g_signal_connect(G_OBJECT(media->priv->media), "state-changed",
- G_CALLBACK(adium_media_state_changed_cb), media);
- g_signal_connect(G_OBJECT(media->priv->media), "stream-info",
- G_CALLBACK(adium_media_stream_info_cb), media);
- break;
- }
- case PROP_SCREENNAME:
- if (media->priv->screenname)
- g_free(media->priv->screenname);
- media->priv->screenname = g_value_dup_string(value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-adium_media_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
-{
- AdiumMedia *media;
- g_return_if_fail(ADIUM_IS_MEDIA(object));
-
- media = ADIUM_MEDIA(object);
-
- switch (prop_id) {
- case PROP_MEDIA:
- g_value_set_object(value, media->priv->media);
- break;
- case PROP_SCREENNAME:
- g_value_set_string(value, media->priv->screenname);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static GtkWidget *
-adium_media_new(PurpleMedia *media, const gchar *screenname)
-{
- AdiumMedia *gtkmedia = g_object_new(adium_media_get_type(),
- "media", media,
- "screenname", screenname, NULL);
- return GTK_WIDGET(gtkmedia);
-}
-
-static void
-adium_media_set_state(AdiumMedia *gtkmedia, AdiumMediaState state)
-{
- gtkmedia->priv->state = state;
-}
-
static gboolean
adium_media_new_cb(PurpleMediaManager *manager, PurpleMedia *media,
PurpleAccount *account, gchar *screenname, gpointer nul)
@@ -461,8 +371,19 @@
if (purple_media_is_initiator(media, NULL, NULL) == TRUE) {
[adium.mediaController showMedia:adiumMedia];
+
+ adiumMedia.mediaState = AIMediaStateWaiting;
+ } else {
+ adiumMedia.mediaState = AIMediaStateRequested;
}
-
+
+ g_signal_connect(G_OBJECT(media), "error",
+ G_CALLBACK(adium_media_error_cb), adiumMedia);
+ g_signal_connect(G_OBJECT(media), "state-changed",
+ G_CALLBACK(adium_media_state_changed_cb), adiumMedia);
+ g_signal_connect(G_OBJECT(media), "stream-info",
+ G_CALLBACK(adium_media_stream_info_cb), adiumMedia);
+
return TRUE;
}
More information about the commits
mailing list