RegisterMethod#

ExportOsc.RegisterMethod(address, callback, argumentTypes)#
Parameters:
  • address (string) -- OSC Message の受信を待機する OSC Address

  • callback (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})