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