Cocoa::Skype とか
Cocoa:: なんちゃらでほしいものを聞いていたときにも挙がっていた Cocoa::Skype だけど、その昔Skype4COMを使った記憶があって、SkypeAPI のバインディング書くのはめんどそうな印象だったのだが、 今日 Skype.framework のヘッダファイルみたら、
#import <Cocoa/Cocoa.h>
@protocol SkypeAPIDelegate;
@interface SkypeAPI : NSObject
{
}
+ (BOOL)isSkypeRunning;
+ (BOOL)isSkypeAvailable; // You can only connect and send commands when this method returns YES.
// For example, when Skype is running, but user is logged out, then it returns NO.
+ (void)setSkypeDelegate:(NSObject<SkypeAPIDelegate>*)aDelegate;
+ (NSObject<SkypeAPIDelegate>*)skypeDelegate;
+ (void)removeSkypeDelegate;
+ (void)connect;
+ (void)disconnect;
+ (void)sendSkypeCommand:(NSString*)aCommandString;
@end
// delegate protocol
@protocol SkypeAPIDelegate
- (NSString*)clientApplicationName;
@end
// delegate informal protocol
@interface NSObject (SkypeAPIDelegateInformalProtocol)
- (void)skypeNotificationReceived:(NSString*)aNotificationString;
- (void)skypeAttachResponse:(unsigned)aAttachResponseCode; // 0 - failed, 1 - success
- (void)skypeBecameAvailable:(NSNotification*)aNotification;
- (void)skypeBecameUnavailable:(NSNotification*)aNotification;
@end
と想像以上に短く、これならすぐバインディング書けそうだなーということで気分転換もかねてPerlバインディングをつくってみた。
使い方は付属の example を参照のこと。 Skype.framework の機能は全部つけてある。 Perl サイドのメソッド名とかはまだ変更するかもしれない。暇なときにドキュメントつけてリリースしよう。