Registration Procedure - mononok/FlightSims GitHub Wiki

プラグインの登録方法

  • Javascriptプラグイン
  • C++ 又は Objective-Cプラグイン
    • main()関数が呼び出されます。

1. Javascriptプラグインの登録方法

下記の関数が定義されていなければならない。

function connectElgatoStreamDeckSocket(inPort, inPluginUUID, inRegisterEvent, inInfo)

この関数はプラグインがロードされた時に呼び出され、下記の処理を行う。
  • ポート番号と共にWebSocketを作る。
    websocket = new WebSocket("ws://localhost:" + inPort);
  • WebSocketがOpenすると、プラグインを登録するためのスペシャルデータを必要とする。
    websocket.onopen = function()
    {
        // WebSocket is connected, register the plugin
        var json = {
            "event": inRegisterEvent,
            "uuid": inPluginUUID
        };
        websocket.send(JSON.stringify(json));
    };
  • この2つの処理を実行した後、プラグインはfunctionからイベントを受け取る。
    websocket.onmessage = function (evt)

inInfo パラメータについては、Info Parameter章に記述されている。

2. コンパイル型プラグインの登録方法

コンパイル型プラグイン(C++, Objective-C)の場合は、コマンドラインツールが下記のパラメータと共に実行される。

Parameter 説明
-port “-port” という文字列
port WebSocketを作成するときに使うポート番号。
-pluginUUID “-pluginUUID” という文字列
UUID 固有の識別子、WebSocketをOpenしたあとのプラグイン登録に必須
-registerEvent “-registerEvent” という文字列
event イベントタイプ、WebSocketをOpenしたあとのプラグイン登録に必須
-info “-info” という文字列
info Stringified json、StreamDeckアプリケーション情報とデバイス情報を含んでいる。

infoInfo parameterにて記述されている。

3. PropertyInspectorの登録方法

PropertyInspectorは、下記のJavascript関数定義を必要とする。

function connectElgatoStreamDeckSocket(inPort, inPropertyInspectorUUID, inRegisterEvent, inInfo, inActionInfo)
Members 説明
inPort WebSocketを作成するときに使うポート番号
inPropertyInspectorUUID PropertyInspectorをStreamDeckアプリケーションに登録するための固有の識別文字
inRegisterEvent イベントタイプ、WebSocketをOpenしたあとのプラグイン登録に必須 registerPropertyInspector
inInfo アプリケーション情報についてのjsonオブジェクト。Info parameterを参照。
inActionInfo Actionについてのjsonオブジェクト。InActionInfo parameterを参照。

この関数はPropertyInspectorが表示された時に呼び出され、次の処理を行う。

  • ポート番号と共にWebSocketを作る。
    websocket = new WebSocket("ws://localhost:" + inPort);
  • WebSocketがOpenすると、PropertyInspectorを登録するためのスペシャルデータを必要とする。
    websocket.onopen = function()
    {
        // WebSocket is connected, register the Property Inspector
        var json = {
            "event": inRegisterEvent,
            "uuid": inPropertyInspectorUUID
        };
        websocket.send(JSON.stringify(json));
    };
  • この2つの処理を実行した後、PropertyInspectorはfunctionからイベントを受け取る。
    websocket.onmessage = function (evt)

inInfo パラメータは Info parameter章で記述されている。

⚠️ **GitHub.com Fallback** ⚠️