adium 3038:f599fa0d98d5: Create an `AIMedia` class, which will a...
commits at adium.im
commits at adium.im
Thu Dec 10 05:56:00 UTC 2009
details: http://hg.adium.im/adium/rev/f599fa0d98d5
revision: 3038:f599fa0d98d5
author: Zachary West <zacw at adium.im>
date: Thu Dec 10 00:55:54 2009 -0500
Create an `AIMedia` class, which will act as a media object. Create `AIMediaController`, which will moderate `AIMedia`s.
diffs (449 lines):
diff -r aa56024e5a1b -r f599fa0d98d5 Adium.xcodeproj/project.pbxproj
--- a/Adium.xcodeproj/project.pbxproj Wed Dec 09 23:42:47 2009 -0500
+++ b/Adium.xcodeproj/project.pbxproj Thu Dec 10 00:55:54 2009 -0500
@@ -151,6 +151,10 @@
117D6DC00BC5F0C40080D02B /* notify.png in Resources */ = {isa = PBXBuildFile; fileRef = 117D6DBF0BC5F0C40080D02B /* notify.png */; };
1181976810D0B0D2003E8ECA /* adiumPurpleMedia.m in Sources */ = {isa = PBXBuildFile; fileRef = 113E06A910D0ABA0005D5B9A /* adiumPurpleMedia.m */; };
1181981310D0B17C003E8ECA /* adiumPurpleMedia.h in Headers */ = {isa = PBXBuildFile; fileRef = 1181981210D0B17C003E8ECA /* adiumPurpleMedia.h */; };
+ 118199C610D0B65A003E8ECA /* AIMedia.h in Headers */ = {isa = PBXBuildFile; fileRef = 118199C410D0B65A003E8ECA /* AIMedia.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 118199C710D0B65A003E8ECA /* AIMedia.m in Sources */ = {isa = PBXBuildFile; fileRef = 118199C510D0B65A003E8ECA /* AIMedia.m */; };
+ 11819A0410D0B8BE003E8ECA /* AIMediaController.m in Sources */ = {isa = PBXBuildFile; fileRef = 11819A0310D0B8BE003E8ECA /* AIMediaController.m */; };
+ 11819A1B10D0B95D003E8ECA /* AIMediaControllerProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 11819A0910D0B90E003E8ECA /* AIMediaControllerProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
11879C0B0F6FF4C400CACFB1 /* AITwitterAccountOAuthSetup.m in Sources */ = {isa = PBXBuildFile; fileRef = 11879C0A0F6FF4C400CACFB1 /* AITwitterAccountOAuthSetup.m */; };
11879DF80F6FFC0B00CACFB1 /* OAuthConsumer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 11879DF70F6FFC0B00CACFB1 /* OAuthConsumer.framework */; };
11879E0A0F6FFC1000CACFB1 /* OAuthConsumer.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 11879DF70F6FFC0B00CACFB1 /* OAuthConsumer.framework */; };
@@ -1957,6 +1961,11 @@
117866DD0EC759B9003E9B97 /* FTProgressResendRollover.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FTProgressResendRollover.tif; path = Resources/FTProgressResendRollover.tif; sourceTree = "<group>"; };
117D6DBF0BC5F0C40080D02B /* notify.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = notify.png; path = Resources/notify.png; sourceTree = SOURCE_ROOT; };
1181981210D0B17C003E8ECA /* adiumPurpleMedia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = adiumPurpleMedia.h; path = "Plugins/Purple Service/adiumPurpleMedia.h"; sourceTree = "<group>"; };
+ 118199C410D0B65A003E8ECA /* AIMedia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIMedia.h; path = "Frameworks/Adium Framework/Source/AIMedia.h"; sourceTree = "<group>"; };
+ 118199C510D0B65A003E8ECA /* AIMedia.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIMedia.m; path = "Frameworks/Adium Framework/Source/AIMedia.m"; sourceTree = "<group>"; };
+ 11819A0210D0B8BE003E8ECA /* AIMediaController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIMediaController.h; path = Source/AIMediaController.h; sourceTree = "<group>"; };
+ 11819A0310D0B8BE003E8ECA /* AIMediaController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIMediaController.m; path = Source/AIMediaController.m; sourceTree = "<group>"; };
+ 11819A0910D0B90E003E8ECA /* AIMediaControllerProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIMediaControllerProtocol.h; path = "Frameworks/Adium Framework/Source/AIMediaControllerProtocol.h"; sourceTree = "<group>"; };
11879C090F6FF4C400CACFB1 /* AITwitterAccountOAuthSetup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AITwitterAccountOAuthSetup.h; path = "Plugins/Twitter Plugin/AITwitterAccountOAuthSetup.h"; sourceTree = "<group>"; };
11879C0A0F6FF4C400CACFB1 /* AITwitterAccountOAuthSetup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AITwitterAccountOAuthSetup.m; path = "Plugins/Twitter Plugin/AITwitterAccountOAuthSetup.m"; sourceTree = "<group>"; };
11879DF70F6FFC0B00CACFB1 /* OAuthConsumer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OAuthConsumer.framework; path = Frameworks/OAuthConsumer.framework; sourceTree = "<group>"; };
@@ -4983,6 +4992,13 @@
name = "Uploader which updates its progress";
sourceTree = "<group>";
};
+ 118198DB10D0B494003E8ECA /* Media */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = Media;
+ sourceTree = "<group>";
+ };
11BE28E30FCC7DA8000E6A10 /* Image Uploading */ = {
isa = PBXGroup;
children = (
@@ -6266,6 +6282,7 @@
34C7C62109EC4E480060FB4A /* AdiumLibpurple */ = {
isa = PBXGroup;
children = (
+ 118198DB10D0B494003E8ECA /* Media */,
8110354B0CDE7EFF00EC6038 /* Certificate Viewer */,
34415880059F8F050019246B /* Services */,
34F59B760667A33900F01E8C /* Notify UI */,
@@ -6863,6 +6880,8 @@
348862CE05645E95003C9627 /* ESFileTransfer.m */,
34F2E83907C2CDBD007EAAAB /* ESFileWrapperExtension.h */,
34F2E83807C2CDBD007EAAAB /* ESFileWrapperExtension.m */,
+ 118199C410D0B65A003E8ECA /* AIMedia.h */,
+ 118199C510D0B65A003E8ECA /* AIMedia.m */,
);
name = Other;
sourceTree = "<group>";
@@ -7011,6 +7030,7 @@
340D0DFF0A7E7B090059A3AF /* AIInterfaceControllerProtocol.h */,
340D0E190A7E7DC30059A3AF /* AILoginControllerProtocol.h */,
340D0E1D0A7E7E7B0059A3AF /* AIMenuControllerProtocol.h */,
+ 11819A0910D0B90E003E8ECA /* AIMediaControllerProtocol.h */,
340D0E210A7E7F160059A3AF /* AIPreferenceControllerProtocol.h */,
340D0E8A0A7E80000059A3AF /* AISoundControllerProtocol.h */,
340D0EA90A7E826C0059A3AF /* AIStatusControllerProtocol.h */,
@@ -7177,6 +7197,8 @@
340C1E750BD59A0500D09235 /* GBImportPlugin.m */,
340C1E760BD59A0500D09235 /* GBImportPlugin.h */,
344C0D4306B6D5E300DA7200 /* Applescriptability */,
+ 11819A0210D0B8BE003E8ECA /* AIMediaController.h */,
+ 11819A0310D0B8BE003E8ECA /* AIMediaController.m */,
);
name = Other;
sourceTree = "<group>";
@@ -9072,6 +9094,7 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
+ 11819A1B10D0B95D003E8ECA /* AIMediaControllerProtocol.h in Headers */,
111D58210F7FC1B900883487 /* AIListContactGroupChatCell.h in Headers */,
1164A90D0F7AD4AB00110AE4 /* AIContentTopic.h in Headers */,
11FC23C20F768C1600C1C906 /* AIXMLElement.h in Headers */,
@@ -9197,6 +9220,7 @@
112B47670F82E0FC00690E84 /* AIXtraInfo.h in Headers */,
34F17FCE0F8EAC34009C5A39 /* AIListOutlineView+Drawing.h in Headers */,
63B0EC9D0F8FBB660062476B /* AIProxyListObject.h in Headers */,
+ 118199C610D0B65A003E8ECA /* AIMedia.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -10603,6 +10627,7 @@
112939100FD5AE1400FA8F53 /* AIConfirmationsAdvancedPreferences.m in Sources */,
11D915720FFC100700B39713 /* AIGenericMultipartImageUploader.m in Sources */,
11000D041098863B0096A1E2 /* AIDefaultFontRemovalPlugin.m in Sources */,
+ 11819A0410D0B8BE003E8ECA /* AIMediaController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -10713,6 +10738,7 @@
112B47680F82E0FC00690E84 /* AIXtraInfo.m in Sources */,
34F17FCF0F8EAC34009C5A39 /* AIListOutlineView+Drawing.m in Sources */,
63B0EC9C0F8FBB660062476B /* AIProxyListObject.m in Sources */,
+ 118199C710D0B65A003E8ECA /* AIMedia.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff -r aa56024e5a1b -r f599fa0d98d5 Frameworks/Adium Framework/Source/AIAdiumProtocol.h
--- a/Frameworks/Adium Framework/Source/AIAdiumProtocol.h Wed Dec 09 23:42:47 2009 -0500
+++ b/Frameworks/Adium Framework/Source/AIAdiumProtocol.h Thu Dec 10 00:55:54 2009 -0500
@@ -29,7 +29,7 @@
@protocol AIAccountController, AIChatController, AIContactAlertsController, AIDebugController, AIEmoticonController,
AIPreferenceController, AIMenuController, AIApplescriptabilityController, AIStatusController,
AIContentController, AIToolbarController, AISoundController, AIDockController,
- AIFileTransferController, AILoginController, AIInterfaceController, AIContactController;
+ AIFileTransferController, AILoginController, AIInterfaceController, AIContactController, AIMediaController;
@protocol AIAdium <NSObject>
@property (readonly, nonatomic) NSObject<AIAccountController> *accountController;
@@ -47,6 +47,7 @@
@property (readonly, nonatomic) NSObject<AIToolbarController> *toolbarController;
@property (readonly, nonatomic) NSObject<AIContactAlertsController> *contactAlertsController;
@property (readonly, nonatomic) NSObject<AIFileTransferController> *fileTransferController;
+ at property (readonly, nonatomic) NSObject<AIMediaController> *mediaController;
@property (readonly, nonatomic) NSObject<AIDebugController> *debugController;
@property (readonly, nonatomic) NSObject<AIApplescriptabilityController> *applescriptabilityController;
diff -r aa56024e5a1b -r f599fa0d98d5 Frameworks/Adium Framework/Source/AIMedia.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Frameworks/Adium Framework/Source/AIMedia.h Thu Dec 10 00:55:54 2009 -0500
@@ -0,0 +1,16 @@
+//
+// AIMedia.h
+// Adium
+//
+// Created by Zachary West on 2009-12-09.
+// Copyright 2009 . All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+ at interface AIMedia : NSObject {
+
+}
+
+ at end
diff -r aa56024e5a1b -r f599fa0d98d5 Frameworks/Adium Framework/Source/AIMedia.m
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Frameworks/Adium Framework/Source/AIMedia.m Thu Dec 10 00:55:54 2009 -0500
@@ -0,0 +1,14 @@
+//
+// AIMedia.m
+// Adium
+//
+// Created by Zachary West on 2009-12-09.
+// Copyright 2009 . All rights reserved.
+//
+
+#import "AIMedia.h"
+
+
+ at implementation AIMedia
+
+ at end
diff -r aa56024e5a1b -r f599fa0d98d5 Frameworks/Adium Framework/Source/AIMediaControllerProtocol.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Frameworks/Adium Framework/Source/AIMediaControllerProtocol.h Thu Dec 10 00:55:54 2009 -0500
@@ -0,0 +1,34 @@
+//
+// AIMediaControllerProtocol.h
+// Adium
+//
+// Created by Zachary West on 2009-12-10.
+// Copyright 2009 . All rights reserved.
+//
+
+#import <Adium/AIControllerProtocol.h>
+
+typedef enum {
+ AIMediaStateWaiting = 1, /* Waiting for response */
+ AIMediaStateRequested, /* Got request */
+ AIMediaStateAccepted, /* Accepted call */
+ AIMediaStateRejected, /* Rejected call */
+} AIMediaState;
+
+typedef enum {
+ AIMediaPropertyMedia = 1, /* A pointer to the PurpleMedia* */
+ AIMediaPropertyScreenName /* The screen name of the user */
+} AIMediaProperty;
+
+ at class AIMedia, AIListContact, AIAccount;
+
+ at protocol AIMediaController <AIController>
+- (AIMedia *)mediaWithContact:(AIListContact *)contact
+ onAccount:(AIAccount *)account;
+
+- (AIMedia *)existingMediaWithContact:(AIListContact *)contact
+ onAccount:(AIAccount *)account;
+
+- (void)showMedia:(AIMedia *)media;
+
+ at end
diff -r aa56024e5a1b -r f599fa0d98d5 Plugins/Purple Service/adiumPurpleMedia.h
--- a/Plugins/Purple Service/adiumPurpleMedia.h Wed Dec 09 23:42:47 2009 -0500
+++ b/Plugins/Purple Service/adiumPurpleMedia.h Thu Dec 10 00:55:54 2009 -0500
@@ -1,9 +1,17 @@
+/*
+ * Adium is the legal property of its developers, whose names are listed in the copyright file included
+ * with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License as published by the Free Software Foundation; either version 2 of the License,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program; if not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
-
-typedef enum {
- AIProperty0,
- AIPropertyMedia,
- AIPropertyScreenname,
- AIPropertySendLevel,
- AIPropertyRecvLevel
-} AIPropertyKey;
\ No newline at end of file
+void adium_medias_init(void);
\ No newline at end of file
diff -r aa56024e5a1b -r f599fa0d98d5 Plugins/Purple Service/adiumPurpleMedia.m
--- a/Plugins/Purple Service/adiumPurpleMedia.m Wed Dec 09 23:42:47 2009 -0500
+++ b/Plugins/Purple Service/adiumPurpleMedia.m Thu Dec 10 00:55:54 2009 -0500
@@ -1,10 +1,33 @@
+/*
+ * Adium is the legal property of its developers, whose names are listed in the copyright file included
+ * with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License as published by the Free Software Foundation; either version 2 of the License,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program; if not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
#import <AdiumLibpurple/SLPurpleCocoaAdapter.h>
+#import <Adium/AIAccount.h>
+#import <Adium/AIListContact.h>
+#import <Adium/AIMedia.h>
+#import <Adium/AIMediaControllerProtocol.h>
#include <string.h>
#include <libpurple/media.h>
#include <libpurple/mediamanager.h>
#include <libpurple/media-gst.h>
#include <gst/interfaces/xoverlay.h>
+
+
+
#define ADIUM_TYPE_MEDIA (adium_media_get_type())
#define ADIUM_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), ADIUM_TYPE_MEDIA, AdiumMedia))
#define ADIUM_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), ADIUM_TYPE_MEDIA, AdiumMediaClass))
@@ -16,18 +39,6 @@
typedef struct _AdiumMediaClass AdiumMediaClass;
typedef struct _AdiumMediaPrivate AdiumMediaPrivate;
-typedef enum
-{
- /* Waiting for response */
- ADIUM_MEDIA_WAITING = 1,
- /* Got request */
- ADIUM_MEDIA_REQUESTED,
- /* Accepted call */
- ADIUM_MEDIA_ACCEPTED,
- /* Rejected call */
- ADIUM_MEDIA_REJECTED,
-} AdiumMediaState;
-
struct _AdiumMediaClass
{
GtkWindowClass parent_class;
@@ -861,15 +872,14 @@
adium_media_new_cb(PurpleMediaManager *manager, PurpleMedia *media,
PurpleAccount *account, gchar *screenname, gpointer nul)
{
- AdiumMedia *gtkmedia = ADIUM_MEDIA(
- adium_media_new(media, screenname));
- PurpleBuddy *buddy = purple_find_buddy(account, screenname);
- const gchar *alias = buddy ?
- purple_buddy_get_contact_alias(buddy) : screenname;
- gtk_window_set_title(GTK_WINDOW(gtkmedia), alias);
+ AIListContact *contact = contactLookupFromBuddy(purple_find_buddy(account, screenname));
+ AIAccount *adiumAccount = accountLookup(account);
+
+ AIMedia *adiumMedia = [adium.mediaController mediaWithContact:contact onAccount:adiumAccount];
- if (purple_media_is_initiator(media, NULL, NULL) == TRUE)
- gtk_widget_show(GTK_WIDGET(gtkmedia));
+ if (purple_media_is_initiator(media, NULL, NULL) == TRUE) {
+ [adium.mediaController showMedia:adiumMedia];
+ }
return TRUE;
}
@@ -982,7 +992,6 @@
void
adium_medias_init(void)
{
-#ifdef USE_VV
PurpleMediaManager *manager = purple_media_manager_get();
PurpleMediaElementInfo *default_video_src =
g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO,
@@ -1020,7 +1029,7 @@
"create-cb", create_default_audio_sink, NULL);
g_signal_connect(G_OBJECT(manager), "init-media",
- G_CALLBACK(adiumadium_media_new_cb), NULL);
+ G_CALLBACK(adium_media_new_cb), NULL);
purple_media_manager_set_ui_caps(manager,
PURPLE_MEDIA_CAPS_AUDIO |
@@ -1033,6 +1042,5 @@
purple_media_manager_set_active_element(manager, default_video_src);
purple_media_manager_set_active_element(manager, default_video_sink);
purple_media_manager_set_active_element(manager, default_audio_src);
- purple_media_manager_set_active_element(manager, default_audio_sink);
-#endif
+ purple_media_manager_set_active_element(manager, default_audio_sink)
}
\ No newline at end of file
diff -r aa56024e5a1b -r f599fa0d98d5 Source/AIAdium.h
--- a/Source/AIAdium.h Wed Dec 09 23:42:47 2009 -0500
+++ b/Source/AIAdium.h Thu Dec 10 00:55:54 2009 -0500
@@ -30,7 +30,7 @@
AIPreferenceController, AIMenuController, AIApplescriptabilityController, AIStatusController,
AIContentController, AIToolbarController, AISoundController, AIEmoticonController,
AIFileTransferController, AILoginController, AIInterfaceController, AIContactController,
- AIDockController;
+ AIDockController, AIMediaController;
@interface AIAdium : NSObject <AIAdium, SUVersionComparison> {
@private
@@ -52,6 +52,7 @@
NSObject <AIContactAlertsController> *contactAlertsController;
NSObject <AIFileTransferController> *fileTransferController;
NSObject <AIApplescriptabilityController> *applescriptabilityController;
+ NSObject <AIMediaController> *mediaController;
NSObject <AIDebugController> *debugController;
AICoreComponentLoader *componentLoader;
diff -r aa56024e5a1b -r f599fa0d98d5 Source/AIAdium.m
--- a/Source/AIAdium.m Wed Dec 09 23:42:47 2009 -0500
+++ b/Source/AIAdium.m Thu Dec 10 00:55:54 2009 -0500
@@ -33,6 +33,7 @@
#import "AISoundController.h"
#import "AIStatusController.h"
#import "AIToolbarController.h"
+#import "AIMediaController.h"
#import "ESApplescriptabilityController.h"
#import "ESContactAlertsController.h"
#import "ESFileTransferController.h"
@@ -86,7 +87,7 @@
}
#pragma mark Core Controllers
- at synthesize accountController, chatController, contactController, contentController, dockController, emoticonController, interfaceController, loginController, menuController, preferenceController, soundController, statusController, toolbarController, contactAlertsController, fileTransferController, applescriptabilityController, debugController;
+ at synthesize accountController, chatController, contactController, contentController, dockController, emoticonController, interfaceController, loginController, menuController, preferenceController, soundController, statusController, toolbarController, contactAlertsController, fileTransferController, mediaController, applescriptabilityController, debugController;
#pragma mark Loaders
@@ -180,6 +181,7 @@
fileTransferController = [[ESFileTransferController alloc] init];
applescriptabilityController = [[ESApplescriptabilityController alloc] init];
statusController = [[AIStatusController alloc] init];
+ mediaController = [[AIMediaController alloc] init];
//Finish setting up the preference controller before the components and plugins load so they can read prefs
[preferenceController controllerDidLoad];
diff -r aa56024e5a1b -r f599fa0d98d5 Source/AIMediaController.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Source/AIMediaController.h Thu Dec 10 00:55:54 2009 -0500
@@ -0,0 +1,15 @@
+//
+// AIMediaController.h
+// Adium
+//
+// Created by Zachary West on 2009-12-10.
+// Copyright 2009 . All rights reserved.
+//
+
+#import <Adium/AIMediaControllerProtocol.h>
+
+ at interface AIMediaController : NSObject <AIMediaController> {
+
+}
+
+ at end
diff -r aa56024e5a1b -r f599fa0d98d5 Source/AIMediaController.m
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Source/AIMediaController.m Thu Dec 10 00:55:54 2009 -0500
@@ -0,0 +1,40 @@
+//
+// AIMediaController.m
+// Adium
+//
+// Created by Zachary West on 2009-12-10.
+// Copyright 2009 . All rights reserved.
+//
+
+#import "AIMediaController.h"
+
+
+ at implementation AIMediaController
+- (void)controllerDidLoad
+{
+
+}
+
+- (void)controllerWillClose
+{
+
+}
+
+- (AIMedia *)mediaWithContact:(AIListContact *)contact
+ onAccount:(AIAccount *)account
+{
+ return nil;
+}
+
+- (AIMedia *)existingMediaWithContact:(AIListContact *)contact
+ onAccount:(AIAccount *)account
+{
+ return nil;
+}
+
+- (void)showMedia:(AIMedia *)media
+{
+
+}
+
+ at end
More information about the commits
mailing list