RegisterMethod#
- ExportOsc.RegisterMethod(address, callback, argumentTypes)#
- Parameters:
address (
string
) -- OSC Message の受信を待機する OSC Addresscallback (
function
) -- OSC Message を受信した時に呼び出されるコールバック関数argumentTypes (
table
) -- 受信する OSC Message に含まれる OSC Argument を表すExportOscType
のテーブル
説明#
address
に OSC Message が送られてきた時に呼び出される関数 callback
を登録します。
address
が nil または OSC Address として不正なフォーマットの場合、登録に失敗します。この時、エラーメッセージがコンソールに出力されます。
また、システムによって予約された一部 OSC Address に対して登録を行おうとした場合、登録に失敗します。この時、エラーメッセージがコンソールに出力されます。
argumentTypes
テーブルは、以下のフォーマットで記述します。
-- {
-- (OSC Argument 1 の型を表す ExportOscType),
-- (OSC Argument 2 の型を表す ExportOscType),
-- (OSC Argument 3 の型を表す ExportOscType),
-- ...
-- }
-- 例:OSC Message に含まれる OSC Argument が、String, Int32, Float32 の順に並んでいる場合
argumentTypes = {
ExportOscType.String,
ExportOscType.Int32,
ExportOscType.Float32,
}
同じ VCI インスタンスから同一の OSC Address に対して複数の callback
を登録することはできません。
最初に登録した callback
のみ有効になり、それ以降の登録は失敗します。この時、エラーメッセージがコンソールに出力されます。
別 VCI インスタンスから同一の OSC Address に対して複数の callback
を登録することができます。この場合、対象の OSC Address に対して送信された OSC Message は、そこに登録されている全ての callback
に対して呼び出されます。
Example#
function echo(content)
print(content)
end
-- /test/echo に ASCII 文字列を一つ含む OSC Message が送られてきた時に、 echo 関数を呼び出す
vci.osc.RegisterMethod("/test/echo", echo, {ExportOscType.String})
function show_point(x, y)
print(x..", "..y)
end
-- /test/showPoint に float32 を二つ含む OSC Message が送られてきた時に、 show_point 関数を呼び出す
vci.osc.RegisterMethod("/test/showPoint", show_point, {ExportOscType.Float32, ExportOscType.Float32})