Skype のムードメッセージでカウントダウン

後輩の誕生日に向けてカウントダウンしたかったので作ってみた。

まず Skype Developer Zone のページからサンプルコードをダウンロードします。

Skype.framework と書かれたリンク。ファイル名は example_macosx_290507.dmg です。
ダウンロードしたディスクイメージを開くと SkypeAPITestSource というフォルダがあるので適当な場所にコピーします。

このサンプルは、はじめの図のように Skype API のコマンドを入力して Skype を操作することができる。なので書くのはカウントダウンする部分だけ。
まず SkypeController.h にタイマーと目標の日付を示す変数を追加する。

    NSTimer *timer;
    NSDate *goal;

そしてタイマーにより呼ばれるメソッドを追加。

- (IBAction)timeUpdate:(id)sender;

続いて SkypeController.m
Connect ボタンが押されたときに呼ばれる (IBAction)onConnectBtn:(id)sender に、目標の日付を初期化するコードと、タイマーを開始するコードを追加。

    goal = [[NSDate alloc] initWithString:@"2009-11-03 00:00:00 +0900"];
    timer = [NSTimer scheduledTimerWithTimeInterval:5
                                             target:self 
                                           selector:@selector(timeUpdate:) 
                                           userInfo:nil 
                                            repeats:YES];

Disconnect ボタンが押されたときにはそれらを破棄する。

    [timer release];
    [goal release];

最後の仕上げにタイマーから呼ばれてムードメッセージを更新するメソッドを書きます。

- (IBAction)timeUpdate:(id)sender
{
    // goal からの時間差(秒)を取得
    NSTimeInterval restt = [goal timeIntervalSinceNow];
    
    // ムードメッセージを更新する
    NSString *commandString = [[NSString alloc] initWithFormat:@"SET PROFILE MOOD_TEXT うなの誕生日まであと %.0f\n", restt];
    NSString* returnedString = [SkypeAPI sendSkypeCommand:commandString];
    [commandString release];
}

はいこれだけであっけなくできてしまいました。
次回はメッセージの内容や日付を設定するインターフェースを付けて、簡単に使えるようにしたいと思います。
誕生日おめでとう!