スポンサーサイト

既存のアプリケーションをAppleScriptに対応する実装例

わかりづらい…。
最も最適な実装が見当たらず。
なんとなく、Objectに対して直接アクセスできそうなこととかはわかるけど、
自動で変換して動いてくれるワケではなさそうで…。

scrCmd.h(の一部)

#import <Foundation/Foundation.h>

@interface scrSetSongLen : NSScriptCommand
-(id)performDefaultImplementation;
@end



scrCmd.m(の一部)

#import "AppDelegate.h"
#import "scrCmd.h"

@implementation scrSetSongLen
-(id)performDefaultImplementation
{
AppDelegate *dele = [[NSApplication sharedApplication] delegate];

[dele setSongLen:[self directParameter]];
return nil;
}
@end



directParameterの戻り値はsdefの定義によって変わると思われる。
numberではNSNumberだった。fileではNSURL。
[hoge path]でPOSIXなパスに変換する必要あり。

simpleplayではAooDelegateで集中管理しているけどそれが正しい設計思想なのかは不明。


simpleplay.sdef

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary title="simpleplay">
<suite name="simpleplay Suite" code="spsu" description="simpleplay Scripts">
<command name="doplay" code="spsuplay" description="play the file">
<cocoa class="scrPlayFile"/>
<direct-parameter description="The filename" type="file"/>
</command>
<command name="seeksec" code="spsussec" description="seek n second ">
<cocoa class="scrSeekSeconds"/>
<direct-parameter description="n seconds" type="number"/>
</command>
<command name="seekframe" code="spsusfrm" description="seek n frames ">
<cocoa class="scrSeekFrames"/>
<direct-parameter description="n frames" type="number"/>
</command>
<command name="setlen" code="spsuslen" description="set length of song to n seconds ">
<cocoa class="scrSetSongLen"/>
<direct-parameter description="n seconds" type="number"/>
</command>
</suite>
</dictionary>



codeは4文字とか8文字で他と被らないように適当に、みたいな感じかな。
Sdef Editorを使ったけど、XMLの仕様が分からないと厳しいかも。

これでは各コマンドに対してclassを一つ一つ作っているけど、methodで呼び出せる気がする…。

Xcodeのプロジェクト設定。
Xcodeプロジェクト設定(sdef)


sdef更新時にはAppleScriptエディタを一度終了させないと
新しいコマンドを認識できないことも。

Xcodeとかの思想だとGUIでサクサク作れそうな感じなんだけど、手作業でした。
ただ、AppleScriptが見捨てられているかといったらScripting Bridgeとかがあったり、そうでも無さそうで…。

ブログ更新

いくつかの記事を下書きにしました。

あまり書き方がよくないものがあったためです(^_^;)

不快な思いをした方がいましたら、すみませんでした。

I/O 2013年9月号にて「マイコンボード」で制御する「FM音源ボード」を執筆

2013年 8月18日発売のI/O 2013年9月号にて、

http://www.kohgakusha.co.jp/books/detail/4196


「マイコンボード」で制御する「FM音源ボード」 ①構想編
を執筆させていただきました。


密かに過ぎ去るのを待つのも良かったのですが、
たまには告知を。

至らない点もあるかとは思いますが、どうかお手柔らかに…。

Unofficial MikuInstaller 20130809 (Wine 1.6) for OS X 10.6

UnofficialなMikuInstallerです。
wine 1.6になって、X11が必要なくなったので記念に。
OS X 10.6以上での動作です。

URLs
http://www.mediafire.com/download/pg7xnpmmmyx27e9/mikuinst_20130809uoaa
http://www.mediafire.com/download/i9pd9824jificvx/mikuinst_20130809uoab
http://www.mediafire.com/download/b274rborm21mtls/mikuinst_20130809uoac

これをうまく結合してください。

例えば
cat mikuinst_20130809uo* >> MikuInstaller_20130809uo.zip

プロフィール

Author:BouKiCHi
ABOUT ME
MAIL:alf_byncyou at hotmail.com

WEB:http://clogging.web.fc2.com/
TWITTER:@bkc_alf

月別アーカイブ

FC2カウンター

ブロとも申請フォーム

ブログ内検索