コマンドのコンテナ化について

コマンドシーケンス(連続で実行される複数のコマンドのまとまり)は
CommandContainerカテゴリのアイテムとしてひとまとめにしておいて、
別のアイテムからひとつの(ひとかたまりの)コマンドとして呼び出して
他のコマンドと同じように実行することができます。

通常は、コマンドを設定するアイテムにCommandCountキーと共に
複数のコマンドを記述しておくことでコマンドシーケンスは実行できますが、
よく使うコマンド処理をCommandContainerでひとまとめにしておけば、
いちいち各アイテムに同じようなコマンドシーケンスを記述しなくても、
CommandContainerに指定したコマンドを実行する」コマンドを書くだけで済むので
iniの作成が楽になります。
CommandContainerカテゴリのフィールドには、
通常のコマンドを割り当てるときと同じように、CommandCountキーと
連番つきのCommandキー・CommandParamTypeキー・CommandParamキーを記入してください。

CommandContainerカテゴリのフィールドに記述したコマンドシーケンスは、
CallSubRoutineコマンドで実行できます。

[Button40]
Category = DynamicImage
Type = StaticItem
BackgroundColor = 0xFF000000
PosX = 10
PosY = 10
Width = 20
Height = 20
Enable = True
Command = CallSubRoutine
CommandParamType = String
CommandParam = repandloop

[repandloop]
Category = CommandContainer
CommandCount = 2
Command1 = PlayMode
CommandParamType1 = String
CommandParam1 = Repeat
Command2 = PlayListLoop
CommandParamType2 = Bool
CommandParam2 = On

上の記述例は『再生モードを「単曲リピート再生」に変えるコマンドと
プレイリストループをONにするコマンド』を設定した
CommandContainerカテゴリのフィールド([repandloop])を
CallSubRoutineコマンドで実行する例です。


コンテナ化したコマンドの設定変更(内容差し替え)について

コマンドコンテナ(CommandContainerカテゴリのフィールド)の内容を変更する場合は、
ModifyCommandContainerコマンドを利用します。
このコマンドは、指定したコマンドコンテナの中のコマンド内容を
別のコマンドコンテナのコマンド内容に置き換えることによって内容を変更します。
ModifyCommandContainerコマンドではModifyItemModifyPlaylistと違い、
コマンドシーケンスの「一部の変更」ではなく
コマンドコンテナに書かれた「全てのコマンドを別のものに置き換える」かたちになります。
このため、変更(置き換え)後の状態のコマンドシーケンスを記述した
別のコマンドコンテナをあらかじめ用意しておいてください。

ModifyCommandContainerに渡すパラメータは
内容を変更するコマンドコンテナのフィールド名と
置き換える内容が書かれたコマンドコンテナのフィールド名の両方です。

なお、ModifyCommandContainerコマンドでコマンドシーケンスを無効にしたい
(何もしないコマンドに差し替えたい)場合は、
CommandCountキーを1にし、Noneコマンド1つを設定した
コマンドコンテナに差し替えることで対応してください。
[blankcommand]
Category = CommandContainer
CommandCount = 1
Command1 = None
Noneコマンドを設定したCommandContainerの例です。
最終更新:2012年12月24日 19:43