1
XML Exchange / Re: InControl HA Command Collection
« on: June 25, 2016, 07:51:20 PM »
Good, I'm glad the setup was painless.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.4.8-->
<groupCollection open="False" name="Denon Receiver">
<commandGroup open="False" name="Denon Setup" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="679" name="Denon Setup (input your ip:port & run once)" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>File.MakeDir</cmdType>
<params>
<param>{Path.VC}\Denon payloads</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Map.Set</cmdType>
<params>
<param>DenonSetup</param>
<param>Denon</param>
<param>http://yourIP:YourPort(typically port 80)</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Map.ExportPayloadXML</cmdType>
<params>
<param>{Path.VC}\Denon payloads\Denon.xml</param>
<param>Denon_Receiver</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Map.ExportPayloadXML</cmdType>
<params>
<param>{Path.VC}\Denon payloads\Denon_Inputs.xml</param>
<param>Denon_Receiver_Inputs</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</command>
<command id="502" name="Get Zone 2" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Scrape.XML</cmdType>
<params>
<param>{M:DenonSetup.Denon Scrape}{M:Denon_Receiver.Scrape Zone 2}</param>
<param>ZonePower</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>power</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape.XML</cmdType>
<params>
<param>{M:DenonSetup.Denon Scrape}{M:Denon_Receiver.Scrape Zone 2}</param>
<param>MasterVolume</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>mastervolume</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape.XML</cmdType>
<params>
<param>{M:DenonSetup.Denon Scrape}{M:Denon_Receiver.Scrape Zone 2}</param>
<param>InputFuncSelect</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>input</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape.XML</cmdType>
<params>
<param>{M:DenonSetup.Denon Scrape}{M:Denon_Receiver.Scrape Zone 2}</param>
<param>FriendlyName</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>DenonName</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.Speak</cmdType>
<params>
<param>{var.DenonName} is Currently {var.power} the volume level is {var.mastervolume} the input is set to {var.input}. </param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>{var.DenonName} Zone 2{CR} Power: {var.power}{CR}Volume: {var.mastervolume}{CR}Input: {var.input}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>GetZone2</event>
</command>
</commandGroup>
<commandGroup open="False" name="Denon" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="454" name="Get Zone 1 or 2 States" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>{1}&&1</ifParams>
<then>
<action>
<cmdType>Scrape.XML</cmdType>
<params>
<param>{M:DenonSetup.Denon Scrape}{M:Denon_Receiver.Scrape Main Zone}</param>
<param>ZonePower</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>power</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape.XML</cmdType>
<params>
<param>{M:DenonSetup.Denon Scrape}{M:Denon_Receiver.Scrape Main Zone}</param>
<param>MasterVolume</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>mastervolume</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape.XML</cmdType>
<params>
<param>{M:DenonSetup.Denon Scrape}{M:Denon_Receiver.Scrape Main Zone}</param>
<param>InputFuncSelect</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>input</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape.XML</cmdType>
<params>
<param>{M:DenonSetup.Denon Scrape}{M:Denon_Receiver.Scrape Main Zone}</param>
<param>FriendlyName</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>DenonName</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.Speak</cmdType>
<params>
<param>{var.DenonName} Zone 1 is Currently {var.power} the volume level is {var.mastervolume} the input is set to {var.input}.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>{var.DenonName} Zone 1{CR} Power: {var.power}{CR}Volume: {var.mastervolume}{CR}Input: {var.input}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>VC.TriggerEvent</cmdType>
<params>
<param>GetZone2</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>What is</phrase>
<phrase optional="true">the</phrase>
<phrase>Receiver's,Denon's</phrase>
<payloadList>Zone 1,Zone 2</payloadList>
<phrase optional="true">Current</phrase>
<phrase>state,settings</phrase>
</command>
<command id="494" name="Power {1} to {2}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>{1}&&2</ifParams>
<then>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>currentZone</param>
<param>{M:Denon_Receiver.Zone 2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>currentZone</param>
<param>{M:Denon_Receiver.???}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)==(B)</ifType>
<ifParams>{2}&&On</ifParams>
<then>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>{M:DenonSetup.Denon}{M:Denon_Receiver.On}{var.currentZone}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>{M:DenonSetup.Denon}{M:Denon_Receiver.Off}{var.currentZone}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>Turn</phrase>
<phrase>Receiver,Denon,Amp</phrase>
<payloadList>Zone 1,Zone 2</payloadList>
<payloadList>On,Off</payloadList>
</command>
<command id="508" name="Set {1} Input to {2}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>{1}&&2</ifParams>
<then>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>currentZone</param>
<param>{M:Denon_Receiver.Zone 2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>currentZone</param>
<param>{M:Denon_Receiver.???}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>{M:DenonSetup.Denon}{2}{var.currentZone}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Set,Change</phrase>
<phrase>Receiver,Denon,Amp</phrase>
<payloadList>Zone 1,Zone 2</payloadList>
<phrase>Input,source</phrase>
<phrase optional="true">to</phrase>
<payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">Denon payloads\Denon_Inputs.xml</payloadFromXML>
</command>
<command id="92" name="raise/lower Volume % from current level" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Scrape.XML</cmdType>
<params>
<param>{M:DenonSetup.Denon Scrape}{M:Denon_Receiver.Scrape Main Zone}</param>
<param>MasterVolume</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>DenonCurrentVol1</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result=80{Var.DenonCurrentVol1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>DenonCurrentVol1</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result={Var.DenonCurrentVol1}*{1}/100</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)==(B)</ifType>
<ifParams>{LastResult}&&1</ifParams>
<then>
<action>
<cmdType>Results.SetLastResult</cmdType>
<params>
<param>1</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType />
<params />
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>{LastSpoken}&&lower</ifParams>
<then>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result={Var.DenonCurrentVol1}-{1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result={Var.DenonCurrentVol1}+{1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)<(B)</ifType>
<ifParams>80&&{LastResult}</ifParams>
<then>
<action>
<cmdType>Results.SetLastResult</cmdType>
<params>
<param>80</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Volume has reached the highest level.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else />
</if>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>DenonCurrentVol1</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result={Var.DenonCurrentVol1}-80</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>DenonCurrentVol1</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>{M:DenonSetup.Denon}{M:Denon_Receiver.Set Volume}{var.DenonCurrentVol1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>raise, lower</phrase>
<phrase>Receiver,Denon,Amp</phrase>
<phrase>volume</phrase>
<payloadList>0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100</payloadList>
<phrase optional="true">percent</phrase>
</command>
</commandGroup>
</groupCollection>
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.4.8-->
<commandGroup open="False" name="iTunes Mini Player" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="521" name="Get iTunes currently playing info" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>iTunes.GetArtist</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>Artist</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>iTunes.GetAlbum</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>Album</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>iTunes.GetSongTitle</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>Title</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>iTunes.GetYear</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>year</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>iTunes.GetGenre</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>genre</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>VC.TriggerEvent</cmdType>
<params>
<param>iTunes.playing</param>
<param>{var.Artist}</param>
<param>{var.Album}</param>
<param>{var.Title}</param>
<param>{var.year}</param>
<param>{var.genre}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>iTunes.Play</event>
</command>
<command id="559" name="iTunes Now Playing Pop-up" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="Enable last action if you want the forecast read aloud as well.
">
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>ip</param>
<param>192.168.1.11:1313</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>RoboB.Select</cmdType>
<params>
<param>iTunes</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>File.Read</cmdType>
<params>
<param>{Path.VC}\Plugins\TCP\html\iTunes.html</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>(<span id="Name">)Artist(</span>)</param>
<param><span id="Name">{var.Artist}</span></param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>(<img src=)"kw.gif" (name="CD")</param>
<param><img src="F:\Music\Mp3 Official Release\{var.genre}\{var.Artist}\{var.Artist} - {var.Album}\{var.Artist} - {var.Album}.jpg" name="CD"</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>(id="Track">)Song title(</div>)</param>
<param>id="Track">{var.Title}</div></param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>(vc.triggerevent&amp;&amp;iTunes_)Pause(" onMouseOut=")</param>
<param>vc.triggerevent&amp;&amp;iTunes_Pause" onMouseOut="</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>ip:port</param>
<param>{var.ip}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>File.Write</cmdType>
<params>
<param>{Path.VC}\Plugins\TCP\html\iTunes2.html</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>RoboB.Navigate</cmdType>
<params>
<param>{Path.VC}\Plugins\TCP\html\iTunes2.html</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>RoboB.Wait</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>RoboB.Show</cmdType>
<params>
<param>True</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>RoboB.ShowFrame</cmdType>
<params>
<param>False</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>RoboB.SetWinSize</cmdType>
<params>
<param>300</param>
<param>360</param>
<param>0</param>
<param>0</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>InputKeys.Send</cmdType>
<params>
<param>{F5}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>iTunes.playing</event>
</command>
<command id="575" name="iTunes Now Paused Pop-up" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="Enable last action if you want the forecast read aloud as well.
">
<action>
<cmdType>RoboB.Select</cmdType>
<params>
<param>iTunes_pause</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>File.Read</cmdType>
<params>
<param>{Path.VC}\Plugins\TCP\html\iTunes.html</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>(<span id="Name">)Artist(</span>)</param>
<param><span id="Name">{var.Artist}</span></param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>(<img src=)"kw.gif" (name="CD")</param>
<param><img src="F:\Music\Mp3 Official Release\{var.genre}\{var.Artist}\{var.Artist} - {var.Album}\{var.Artist} - {var.Album}.jpg" name="CD"</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>(<img src=)"Play.png" alt="Pause" (name="Pause")</param>
<param><img src="Pause.png" alt="Play" name="Pause"</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>(id="Track">)Song title(</div>)</param>
<param>id="Track">{var.Title}</div></param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>(id="a3"><a href="ip:port/api/vc.triggerevent&amp;&amp;iTunes_)Pause" (onMouseOut="MM_swapIm)</param>
<param>id="a3"><a href="ip:port/api/vc.triggerevent&amp;&amp;iTunes_Play "onMouseOut="MM_swapIm</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>('Pause','',')pause(_roll.png')</param>
<param>'Pause','','play_roll.png'</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegExReplace</cmdType>
<params>
<param>ip:port</param>
<param>{var.ip}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>File.Write</cmdType>
<params>
<param>{Path.VC}\Plugins\TCP\html\iTunes2.html</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>RoboB.Navigate</cmdType>
<params>
<param>{Path.VC}\Plugins\TCP\html\iTunes2.html</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>RoboB.Wait</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>RoboB.Show</cmdType>
<params>
<param>True</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>RoboB.ShowFrame</cmdType>
<params>
<param>False</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>RoboB.SetWinSize</cmdType>
<params>
<param>300</param>
<param>360</param>
<param>0</param>
<param>0</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>InputKeys.Send</cmdType>
<params>
<param>{F5}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>iTunes.Stop</event>
</command>
<command id="48" name="raise/lower Volume in 10% steps from current level" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>iTunes.GetVolume</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>iTunesCurrentVol1</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result={Var.iTunesCurrentVol1}*{1}/100</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)<(B)</ifType>
<ifParams>{LastResult}&&1</ifParams>
<then>
<action>
<cmdType>Results.SetLastResult</cmdType>
<params>
<param>1</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType />
<params />
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>{1}&&minus</ifParams>
<then>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result={Var.iTunesCurrentVol1}-10</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result={Var.iTunesCurrentVol1}+10</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)<(B)</ifType>
<ifParams>100&&{LastResult}</ifParams>
<then>
<action>
<cmdType>Results.SetLastResult</cmdType>
<params>
<param>100</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Volume has reached the highest level.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<action>
<cmdType>iTunes.SetVolume</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>VC.TriggerEvent</cmdType>
<params>
<param>iTunes.playing</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>iTunes_vol</event>
</command>
<command id="478" name="Play" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>iTunes.Play</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<event>iTunes_Play</event>
</command>
<command id="495" name="Pause" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>iTunes.Pause</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<event>iTunes_Pause</event>
</command>
<command id="459" name="Next track" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>iTunes.Next</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<event>iTunes_Next</event>
</command>
<command id="471" name="Last track" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>iTunes.Previous</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<event>iTunes_Last</event>
</command>
</commandGroup>