説明
GetPresetData 関数は、プリセット・ハンドルに基づいてプリセットデータを含むテーブルを返します。
返されるテーブルは非常に複雑で、テーブル内にもテーブルがあります。
引数
- handle:
データが収集されるプリセットのハンドル。
- boolean または nil (オプション):
返されるテーブルにフェイザーデータだけを含めるかどうかを決めます。デフォルト値は "false" です。
- boolean (オプション):
返されるテーブルに追加オブジェクトを含めるかどうかを指定します。デフォルト値は "true" です。追加のテーブル・オブジェクトは、"by_fixtures" というキーを持ち、返されるテーブルと同じ内容を含みますが、キーはUIチャンネル・インデックスではなくフィクスチャID番号になります。
戻り値
- table または nil:
返されるテーブルには、プリセットデータが含まれます。複数レベルのテーブルが含まれます。
例
この例では、プリセットデータ内にある最初のレベルのテーブルと、プリセット内にある最初のフィクスチャの最初のレベルに関する情報を出力します。これは、必ず存在する Dimmer プリセット1を使用します。
|
return function() local myPreset = DataPool().PresetPools[1][1] local myPresetData = GetPresetData(myPreset, false, false) if myPresetData == nil then ErrPrintf("Dimmer preset 1 does not exist. Please create one and try again.") return end
for Key, value in pairs(myPresetData) do if type(value) == "table" then Printf("Key: " .. Key .. " ; Value type is: " .. type(value)) else Printf("Key: " .. Key .. " ; Value type is: " .. type(value) .. " ; Value: " .. value) end end
local myIntegerTableKeys = {} for key,_ in pairs(myPresetData) do if type(key) == "number" then table.insert(myIntegerTableKeys, key) end end table.sort(myIntegerTableKeys)
local tableIndex = myIntegerTableKeys[1] if tableIndex ~= nil then Printf("=============== TABLE CONTENT START - Table Key: " .. tableIndex .." ===============") for Key, value in pairs(myPresetData[tableIndex]) do if type(value) == "table" then Printf("Key: " .. Key .. " ; Value type is: " .. type(value)) else Printf("Key: " .. Key .. " ; Value type is: " .. type(value) .. " ; Value: " .. tostring(value)) end end Printf("================ TABLE CONTENT END - Table Key: " .. tableIndex .." ================") end end |