Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/EionRobb/skype4pidgin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'SkypePlugin.m')
-rw-r--r--SkypePlugin.m93
1 files changed, 0 insertions, 93 deletions
diff --git a/SkypePlugin.m b/SkypePlugin.m
deleted file mode 100644
index 1692537..0000000
--- a/SkypePlugin.m
+++ /dev/null
@@ -1,93 +0,0 @@
-//
-// SkypePlugin.m
-// SkypePlugin
-//
-// Created by Eion Robb on 14/10/07.
-//
-
-#import "SkypePlugin.h"
-#import "PurpleSkypeAccount.h"
-#import "PurpleSkypeService.h"
-#import <AdiumLibpurple/adiumPurpleFt.h>
-#import <AdiumLibpurple/adiumPurpleEventloop.h>
-#import <Adium/ESFileTransfer.h>
-#import <libpurple/libpurple.h>
-#include <dlfcn.h>
-
-extern PurplePlugin *purple_plugin_new(gboolean native, const char *path) __attribute__((weak_import));
-//extern void g_thread_init (GThreadFunctions *vtable) __attribute__((weak_import));
-
-guint (*adium_timeout_add)(guint, GSourceFunc, gpointer);
-gboolean purple_init_skype_plugin(void);
-
-static void skypeAdiumPurpleAddXfer(PurpleXfer *xfer)
-{
- if (!xfer || !xfer->account || strcmp(xfer->account->protocol_id, "prpl-bigbrownchunx-skype"))
- return;
-
- ESFileTransfer *fileTransfer;
-
- //Ask the account for an ESFileTransfer* object
- fileTransfer = [accountLookup(xfer->account) newFileTransferObjectWith:[NSString stringWithUTF8String:(xfer->who)]
- size:purple_xfer_get_size(xfer)
- remoteFilename:[NSString stringWithUTF8String:(xfer->filename)]];
-
- //Configure the new object for the transfer
- [fileTransfer setAccountData:[NSValue valueWithPointer:xfer]];
-
- xfer->ui_data = [fileTransfer retain];
-}
-
-guint adium_threadsafe_timeout_add(guint interval, GSourceFunc function, gpointer data)
-{
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- guint return_val = adium_timeout_add(interval, function, data);
- [pool release];
- return return_val;
-}
-
-@implementation SkypePlugin
-
-- (void)installPlugin
-{
- printf("Installing SkypePlugin\n");
-
- //Check that we can thread stuff
- if (dlsym(RTLD_DEFAULT, "g_thread_init") == NULL)
- {
- printf("No g_thread_init();\n");
- //try opening thread libraries
- dlopen("~/Library/Application Support/Adium 2.0/PlugIns/SkypePlugin.AdiumLibpurplePlugin/Contents/Libraries/libgthread-2.0.0.dylib", RTLD_LAZY);
- if (dlsym(RTLD_DEFAULT, "g_thread_init") == NULL)
- {
- printf("Can't load GThread :(\n");
- return;
- }
- }
-
- printf("Calling purple_init_skype_plugin()\n");
- //Hack in our own transfer code and thread-safe timeout loop
- adium_purple_xfers_get_ui_ops()->add_xfer = skypeAdiumPurpleAddXfer;
- //adium_timeout_add = adium_purple_eventloop_get_ui_ops()->timeout_add;
- //adium_purple_eventloop_get_ui_ops()->timeout_add = adium_threadsafe_timeout_add;
-#ifdef ENABLE_NLS
- //bindtextdomain("pidgin", [[[NSBundle bundleWithIdentifier:@"im.pidgin.libpurple"] resourcePath] fileSystemRepresentation]);
- //bind_textdomain_codeset("pidgin", "UTF-8");
- //textdomain("pidgin");
-
- bindtextdomain("skype4pidgin", [[[[NSBundle bundleWithIdentifier:@"org.bigbrownchunx.skypeplugin"] resourcePath] stringByAppendingPathComponent:@"/locale"] fileSystemRepresentation]);
- bind_textdomain_codeset("skype4pidgin", "UTF-8");
- textdomain("skype4pidgin");
-#endif
-
- purple_init_skype_plugin();
- printf("Initialising PurpleSkypeService\n");
- SkypeService = [[PurpleSkypeService alloc] init];
-}
-
-- (void)uninstallPlugin
-{
- [SkypeService release]; SkypeService = nil;
-}
-
-@end