Media Center Core Commands: Difference between revisions

From wiki.jriver.com
Jump to navigation Jump to search
No edit summary
Line 7: Line 7:


Note: Some commands may only work with the latest version of Media Center.
Note: Some commands may only work with the latest version of Media Center.

== How To Issue Media Core Commands ==

* Post a WM_MC_COMMAND based message to the MC frame
C++ Example:
HWND hwndMC = FindWindow(_T("MJFrame"), NULL);
PostMessage(hwndMC, WM_MC_COMMAND, MCC_PLAY_PAUSE, 0);

* Fire the same command through the launcher (i.e. 'MC12.exe') in the system directory
MC12.exe /MCC 10000, 0



== MC Commands ==
== MC Commands ==
Line 769: Line 780:
</table>
</table>


===Zones===
== Zones ==
To issue playback commands to a specific zone, mask these values with the parameter:
To issue playback commands to a specific zone, mask these values with the parameter:
Current Zone: 0
Current: 0 (0x00000000 hex)
Zone 0: 16777216 (or 0x1000000 hex)
Zone 0: 16777216 (0x01000000 hex)
Zone 1: 33554432 (or 0x2000000 hex)
Zone 1: 33554432 (0x02000000 hex)
Zone 2: 50331648 (or 0x3000000 hex)
Zone 2: 50331648 (0x03000000 hex)
Zone 3: 67108864 (or 0x4000000 hex)
Zone 3: 67108864 (0x04000000 hex)
Zone 4: 83886080 (or 0x5000000 hex)
Zone 4: 83886080 (0x05000000 hex)
Zone 5: 100663296 (or 0x6000000 hex)
Zone 5: 100663296 (0x06000000 hex)
...
etc... (keep adding 16777216 (or 2^24)) (up to Zone 31)
Zone 31: 520093696 (0x1F000000 hex)


For the geeks, the actual parameter is bits 0-23 and the Zone is bits 24-29 of the 32-bit parameter (see the [[#Helper_Macros|C++ macros]] below if you like). If bit 32 is set, Media Center assumes you passed in a simple negative number, so the Zone portion is discarded.
for the geeks, this is the top 6 bits of the 32-bit parameter
the lower 24 bits are used for the rest of the parameter (see the C++ macros below if you like)
if bit 32 is set, we assume someone passed in a simple negative number, so discard the zone portion


Creating the final parameter value:
for parameters >= 0: zone number + parameter
for parameters < 0: zone number + (16777216 + parameter)
For parameters >= 0
final parameter value = Zone mask + parameter
example: parameter -1 to zone 3: 67108864 + (16777216 + -1) = 83886079
For parameters < 0
final parameter value = Zone mask + (16777216 + parameter)

Example:
parameter -1 to Zone 3: 67108864 + (16777216 + -1) = 83886079


<table border=1 cellspacing=0 width="100%">
<table border=1 cellspacing=0 width="100%">

<td>ZONE PARAM</td><td>Zone Number</td><td>Wparam</td><td>Lparam</td><td>zone</td>


<tr>
<tr>
<td>Z0: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td> <td>16777216</td><td>0</td>
<th>Zone: Operation</th><th>MCC Command</th><th>Wparam</th><th>Lparam</th>
</tr>
</tr>

<tr>
<tr>
<td>Z0: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>16777216</td><td>0</td>
<td>Z0: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Stop</td><td>MCC_STOP</td><td>10002</td> <td>16777216</td><td>0</td>
<td>Z0: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Next</td><td>MCC_NEXT</td><td>10003</td> <td>16777216</td><td>0</td>
<td>Z0: Stop</td><td>MCC_STOP</td><td>10002</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>16777216</td><td>0</td>
<td>Z0: Next</td><td>MCC_NEXT</td><td>10003</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>16777216</td><td>0</td>
<td>Z0: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>16777217</td><td>0</td>
<td>Z0: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>16777218</td><td>0</td>
<td>Z0: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>16777217</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>16777216</td><td>0</td>
<td>Z0: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>16777218</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>16777216</td><td>0</td>
<td>Z0: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>16777216</td><td>0</td>
<td>Z0: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>16777216</td><td>0</td>
<td>Z0: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>16777216</td><td>0</td>
<td>Z0: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>16777221</td><td>0</td>
<td>Z0: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>16777221</td><td>0</td>
<td>Z0: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>16777221</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>16777216</td><td>0</td>
<td>Z0: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>16777221</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>16777241</td><td>0</td>
<td>Z0: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>16777266</td><td>0</td>
<td>Z0: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>16777241</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>16777291</td><td>0</td>
<td>Z0: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>16777266</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>16777316</td><td>0</td>
<td>Z0: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>16777291</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>16777216</td><td>0</td>
<td>Z0: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>16777316</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>16777217</td><td>0</td>
<td>Z0: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>16777216</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>16777218</td><td>0</td>
<td>Z0: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>16777217</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>16777219</td><td>0</td>
<td>Z0: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>16777218</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>16777220</td><td>0</td>
<td>Z0: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>16777219</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>16777221</td><td>0</td>
<td>Z0: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>16777220</td>
</tr>
</tr>
<tr>
<tr>
<td>Z0: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>16777221</td>

</tr>
</tr>

<tr>
<tr>
<td colspan=4>&nbsp;</td>
<td>Z1: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td> <td>33554432</td><td>1</td>
</tr>
</tr>

<tr>
<tr>
<td>Z1: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>33554432</td><td>1</td>
<td>Z1: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Stop</td><td>MCC_STOP</td><td>10002</td> <td>33554432</td><td>1</td>
<td>Z1: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Next</td><td>MCC_NEXT</td><td>10003</td> <td>33554432</td><td>1</td>
<td>Z1: Stop</td><td>MCC_STOP</td><td>10002</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>33554432</td><td>1</td>
<td>Z1: Next</td><td>MCC_NEXT</td><td>10003</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>33554432</td><td>1</td>
<td>Z1: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>33554433</td><td>1</td>
<td>Z1: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>33554434</td><td>1</td>
<td>Z1: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>33554433</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>33554432</td><td>1</td>
<td>Z1: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>33554434</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>33554432</td><td>1</td>
<td>Z1: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>33554432</td><td>1</td>
<td>Z1: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>33554432</td><td>1</td>
<td>Z1: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>33554432</td><td>1</td>
<td>Z1: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>33554437</td><td>1</td>
<td>Z1: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>33554437</td><td>1</td>
<td>Z1: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>33554437</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>33554432</td><td>1</td>
<td>Z1: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>33554437</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>33554457</td><td>1</td>
<td>Z1: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>33554482</td><td>1</td>
<td>Z1: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>33554457</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>33554507</td><td>1</td>
<td>Z1: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>33554482</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>33554532</td><td>1</td>
<td>Z1: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>33554507</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>33554432</td><td>1</td>
<td>Z1: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>33554532</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>33554433</td><td>1</td>
<td>Z1: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>33554432</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>33554434</td><td>1</td>
<td>Z1: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>33554433</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>33554435</td><td>1</td>
<td>Z1: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>33554434</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>33554436</td><td>1</td>
<td>Z1: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>33554435</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>33554437</td><td>1</td>
<td>Z1: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>33554436</td>
</tr>
</tr>
<tr>
<tr>
<td>Z1: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>33554437</td>

</tr>
</tr>

<tr>
<tr>
<td colspan=4>&nbsp;</td>
<td>Z2: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td> <td>50331648</td><td>2</td>
</tr>
</tr>

<tr>
<tr>
<td>Z2: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>50331648</td><td>2</td>
<td>Z2: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Stop</td><td>MCC_STOP</td><td>10002</td> <td>50331648</td><td>2</td>
<td>Z2: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Next</td><td>MCC_NEXT</td><td>10003</td> <td>50331648</td><td>2</td>
<td>Z2: Stop</td><td>MCC_STOP</td><td>10002</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>50331648</td><td>2</td>
<td>Z2: Next</td><td>MCC_NEXT</td><td>10003</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>50331648</td><td>2</td>
<td>Z2: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>50331649</td><td>2</td>
<td>Z2: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>50331650</td><td>2</td>
<td>Z2: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>50331649</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>50331648</td><td>2</td>
<td>Z2: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>50331650</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>50331648</td><td>2</td>
<td>Z2: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>50331648</td><td>2</td>
<td>Z2: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>50331648</td><td>2</td>
<td>Z2: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>50331648</td><td>2</td>
<td>Z2: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>50331653</td><td>2</td>
<td>Z2: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>50331653</td><td>2</td>
<td>Z2: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>50331653</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>50331648</td><td>2</td>
<td>Z2: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>50331653</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>50331673</td><td>2</td>
<td>Z2: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>50331698</td><td>2</td>
<td>Z2: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>50331673</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>50331723</td><td>2</td>
<td>Z2: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>50331698</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>50331748</td><td>2</td>
<td>Z2: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>50331723</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>50331648</td><td>2</td>
<td>Z2: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>50331748</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>50331649</td><td>2</td>
<td>Z2: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>50331648</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>50331650</td><td>2</td>
<td>Z2: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>50331649</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>50331651</td><td>2</td>
<td>Z2: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>50331650</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>50331652</td><td>2</td>
<td>Z2: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>50331651</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>50331653</td><td>2</td>
<td>Z2: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>50331652</td>
</tr>
</tr>
<tr>
<tr>
<td>Z2: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>50331653</td>

</tr>
</tr>

<tr>
<tr>
<td colspan=4>&nbsp;</td>
<td>Z3: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td><td>67108864</td><td>3</td>
</tr>
</tr>

<tr>
<tr>
<td>Z3: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>67108864</td><td>3</td>
<td>Z3: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td><td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Stop</td><td>MCC_STOP</td><td>10002</td> <td>67108864</td><td>3</td>
<td>Z3: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Next</td><td>MCC_NEXT</td><td>10003</td> <td>67108864</td><td>3</td>
<td>Z3: Stop</td><td>MCC_STOP</td><td>10002</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>67108864</td><td>3</td>
<td>Z3: Next</td><td>MCC_NEXT</td><td>10003</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>67108864</td><td>3</td>
<td>Z3: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>67108865</td><td>3</td>
<td>Z3: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>67108866</td><td>3</td>
<td>Z3: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>67108865</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>67108864</td><td>3</td>
<td>Z3: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>67108866</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>67108864</td><td>3</td>
<td>Z3: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>67108864</td><td>3</td>
<td>Z3: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>67108864</td><td>3</td>
<td>Z3: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>67108864</td><td>3</td>
<td>Z3: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>67108869</td><td>3</td>
<td>Z3: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>67108869</td><td>3</td>
<td>Z3: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>67108869</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>
<td>Z3: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>67108869</td>
67108864</td><td>3</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>67108889</td><td>3</td>
<td>Z3: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>67108914</td><td>3</td>
<td>Z3: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>67108889</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>67108939</td><td>3</td>
<td>Z3: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>67108914</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>67108964</td><td>3</td>
<td>Z3: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>67108939</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>67108864</td><td>3</td>
<td>Z3: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>67108964</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>67108865</td><td>3</td>
<td>Z3: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>67108864</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>67108866</td><td>3</td>
<td>Z3: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>67108865</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>67108867</td><td>3</td>
<td>Z3: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>67108866</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>67108868</td><td>3</td>
<td>Z3: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>67108867</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>67108869</td><td>3</td>
<td>Z3: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>67108868</td>
</tr>
</tr>
<tr>
<tr>
<td>Z3: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>67108869</td>

</tr>
</tr>

<tr>
<tr>
<td colspan=4>&nbsp;</td>
<td>Z4: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td> <td>83886080</td><td>4</td>
</tr>
</tr>

<tr>
<tr>
<td>Z4: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>83886080</td><td>4</td>
<td>Z4: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Stop</td><td>MCC_STOP</td><td>10002</td> <td>83886080</td><td>4</td>
<td>Z4: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Next</td><td>MCC_NEXT</td><td>10003</td> <td>83886080</td><td>4</td>
<td>Z4: Stop</td><td>MCC_STOP</td><td>10002</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>83886080</td><td>4</td>
<td>Z4: Next</td><td>MCC_NEXT</td><td>10003</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>83886080</td><td>4</td>
<td>Z4: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>83886081</td><td>4</td>
<td>Z4: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>83886082</td><td>4</td>
<td>Z4: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>83886081</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>83886080</td><td>4</td>
<td>Z4: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>83886082</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>83886080</td><td>4</td>
<td>Z4: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>83886080</td><td>4</td>
<td>Z4: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>83886080</td><td>4</td>
<td>Z4: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>83886080</td><td>4</td>
<td>Z4: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>83886085</td><td>4</td>
<td>Z4: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>83886085</td><td>4</td>
<td>Z4: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>83886085</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>83886080</td><td>4</td>
<td>Z4: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>83886085</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>83886105</td><td>4</td>
<td>Z4: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>83886130</td><td>4</td>
<td>Z4: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>83886105</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>83886155</td><td>4</td>
<td>Z4: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>83886130</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>83886180</td><td>4</td>
<td>Z4: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>83886155</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>83886080</td><td>4</td>
<td>Z4: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>83886180</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>83886081</td><td>4</td>
<td>Z4: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>83886080</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>83886082</td><td>4</td>
<td>Z4: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>83886081</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>83886083</td><td>4</td>
<td>Z4: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>83886082</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>83886084</td><td>4</td>
<td>Z4: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>83886083</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>83886085</td><td>4</td>
<td>Z4: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>83886084</td>
</tr>
</tr>
<tr>
<tr>
<td>Z4: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>83886085</td>
</tr>


<tr>
<td colspan=4>&nbsp;</td>
</tr>
</tr>

<tr>
<tr>
<td>Z5: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td> <td>100663296</td><td>5</td>
<td>Z5: Play/Pause</td><td>MCC_PLAY_PAUSE</td><td>10000</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>100663296</td><td>5</td>
<td>Z5: Play Track from Beginning</td><td>MCC_PLAY</td><td>10001</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Stop</td><td>MCC_STOP</td><td>10002</td> <td>100663296</td><td>5</td>
<td>Z5: Stop</td><td>MCC_STOP</td><td>10002</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Next</td><td>MCC_NEXT</td><td>10003</td> <td>100663296</td><td>5</td>
<td>Z5: Next</td><td>MCC_NEXT</td><td>10003</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>100663296</td><td>5</td>
<td>Z5: Previous</td><td>MCC_PREVIOUS</td><td>10004</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>100663296</td><td>5</td>
<td>Z5: Shuffle Mode-Toggle</td><td>MCC_SHUFFLE</td><td>10005</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>100663297</td><td>5</td>
<td>Z5: ReShuffle-Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>100663297</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>100663298</td><td>5</td>
<td>Z5: ReShuffle-No Jump to PN</td><td>MCC_SHUFFLE</td><td>10005</td><td>100663298</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>100663296</td><td>5</td>
<td>Z5: Continuous Mode-Toggle</td><td>MCC_CONTINUOUS</td><td>10006</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>100663296</td><td>5</td>
<td>Z5: FF</td><td>MCC_FAST_FORWARD</td><td>10008</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>100663296</td><td>5</td>
<td>Z5: Rew</td><td>MCC_REWIND</td><td>10009</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>100663296</td><td>5</td>
<td>Z5: Play Seq. #</td><td>MCC_PLAY_CPLDB_INDEX</td><td>10015</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>100663296</td><td>5</td>
<td>Z5: Mute</td><td>MCC_VOLUME_MUTE</td><td>10017</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>100663301</td><td>5</td>
<td>Z5: Vol +5</td><td>MCC_VOLUME_UP</td><td>10018</td><td>100663301</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>100663301</td><td>5</td>
<td>Z5: Vol -5</td><td>MCC_VOLUME_DOWN</td><td>10019</td><td>100663301</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>100663296</td><td>5</td>
<td>Z5: Vol 0</td><td>MCC_VOLUME_SET</td><td>10020</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>100663321</td><td>5</td>
<td>Z5: Vol 25</td><td>MCC_VOLUME_SET</td><td>10020</td><td>100663321</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>100663346</td><td>5</td>
<td>Z5: Vol 50</td><td>MCC_VOLUME_SET</td><td>10020</td><td>100663346</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>100663371</td><td>5</td>
<td>Z5: Vol 75</td><td>MCC_VOLUME_SET</td><td>10020</td><td>100663371</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>100663396</td><td>5</td>
<td>Z5: Vol 100</td><td>MCC_VOLUME_SET</td><td>10020</td><td>100663396</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>100663296</td><td>5</td>
<td>Z5: Rating-?</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td> <td>100663296</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>100663297</td><td>5</td>
<td>Z5: Rating-1</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>100663297</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>100663298</td><td>5</td>
<td>Z5: Rating-2</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>100663298</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>100663299</td><td>5</td>
<td>Z5: Rating-3</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>100663299</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>100663300</td><td>5</td>
<td>Z5: Rating-4</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>100663300</td>
</tr>
</tr>
<tr>
<tr>
<td>Z5: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>100663301</td><td>5</td>
<td>Z5: Rating-5</td><td>MCC_SET_CURRENTLY_PLAYING_RATING</td><td>10023</td><td>100663301</td>
</tr>
</tr>
</table>
</table>


== Other Defines ==

==How To Issue Media Core Commands==

* Post a WM_MC_COMMAND based message to the MC frame
C++ Example:
HWND hwndMC = FindWindow(_T("MJFrame"), NULL);
PostMessage(hwndMC, WM_MC_COMMAND, MCC_PLAY_PAUSE, 0);

* Fire the same command through the launcher (i.e. 'MC12.exe') in the system directory
MC12.exe /MCC 10000, 0


<pre>
<pre>
Line 1,303: Line 1,321:
enum MCC_UPDATEUI_FLAGS
enum MCC_UPDATEUI_FLAGS
{
{
MCC_UPDATEUI_ENABLE = 1,
MCC_UPDATEUI_ENABLE = 1,
MCC_UPDATEUI_DISABLE = 2,
MCC_UPDATEUI_DISABLE = 2,
MCC_UPDATEUI_PRESSED = 4,
MCC_UPDATEUI_PRESSED = 4,
Line 1,309: Line 1,327:
</pre>
</pre>


== Helper macros ==
=== Helper macros ===


<pre>
<pre>
Line 1,324: Line 1,342:
#define IS_LIST_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_LIST_SECTION)
#define IS_LIST_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_LIST_SECTION)
#define IS_SYSTEM_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_SYSTEM_SECTION)
#define IS_SYSTEM_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_SYSTEM_SECTION)
#define IS_PLAYBACK_ENGINE_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_PLAYBACK_ENGINE_SECTION)
#define IS_IMAGE_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_IMAGE_SECTION)
#define IS_IMAGE_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_IMAGE_SECTION)
#define IS_INTERNAL_COMMAND_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_COMMANDS_SECTION)
#define IS_INTERNAL_COMMAND_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_COMMANDS_SECTION)
Line 1,334: Line 1,353:
</pre>
</pre>


== Defines For Internal Use ==
=== For Internal Use ===


<pre>
<pre>
Line 1,345: Line 1,364:
#define MCC_UPDATE_FLAG_ITEM_DELETED (1 << 5)
#define MCC_UPDATE_FLAG_ITEM_DELETED (1 << 5)
#define MCC_UPDATE_FLAG_NO_PRESERVE_VIEW_STATE (1 << 6)
#define MCC_UPDATE_FLAG_NO_PRESERVE_VIEW_STATE (1 << 6)
#define MCC_UPDATE_FLAG_WEB_VIEW (1 << 7)


// update all
// update all
Line 1,352: Line 1,372:
enum UI_MODES
enum UI_MODES
{
{
// unknown
UI_MODE_UNKNOWN = -2000,
UI_MODE_UNKNOWN = -2000,

UI_MODE_NO_UI = -1000,
// internal modes
UI_MODE_CURRENT = -3,
UI_MODE_CLOSE_DISPLAY = -2,
UI_MODE_INTERNAL_NO_UI = -1000,
UI_MODE_INTERNAL_STANDARD,
UI_MODE_NEXT = -1,
UI_MODE_INTERNAL_MINI_FREEFORM,
UI_MODE_INTERNAL_MINI_SLIM,
UI_MODE_INTERNAL_DISPLAY_WINDOWED,
UI_MODE_INTERNAL_DISPLAY_FULLSCREEN,
UI_MODE_INTERNAL_THEATER,

// toggles, shortcuts, etc.
UI_MODE_SHORTCUT_TOGGLE_DISPLAY_AND_LAST_USER_INPUT_MODE = -7,
UI_MODE_SHORTCUT_TOGGLE_DISPLAY_EXCLUDE_THEATER_VIEW = -6,
UI_MODE_SHORTCUT_TOGGLE_DISPLAY = -5,
UI_MODE_SHORTCUT_LAST_SHUTDOWN = -4,
UI_MODE_SHORTCUT_CURRENT = -3,
UI_MODE_SHORTCUT_CLOSE_DISPLAY = -2,
UI_MODE_SHORTCUT_NEXT = -1,

// modes presented to the user
UI_MODE_STANDARD = 0,
UI_MODE_STANDARD = 0,
UI_MODE_MINI,
UI_MODE_MINI,
UI_MODE_FULLSCREEN,
UI_MODE_DISPLAY,
UI_MODE_THEATER,
UI_MODE_THEATER,
UI_MODE_WINDOWED,
UI_MODE_STACK,
UI_MODE_SLIM,
UI_MODE_COUNT,
UI_MODE_COUNT,
};
};
Line 1,414: Line 1,448:
GET_SELECTION_ALL,
GET_SELECTION_ALL,
};
};

</pre>
</pre>

Revision as of 19:00, 16 January 2008

Each command has a "what command" (i.e. MCC_PLAY_PAUSE) and also an optional parameter, which is explained by the comment following the command. If you don't use the parameter, set it to '0'.

The full, C++ header (may be newer than the wiki) is available here: http://www.jrmediacenter.com/DevZone/MCCommands.h

Note: Some commands may only work with the latest version of Media Center.

How To Issue Media Core Commands

  • Post a WM_MC_COMMAND based message to the MC frame

C++ Example:

HWND hwndMC = FindWindow(_T("MJFrame"), NULL);
PostMessage(hwndMC, WM_MC_COMMAND, MCC_PLAY_PAUSE, 0);
  • Fire the same command through the launcher (i.e. 'MC12.exe') in the system directory
MC12.exe /MCC 10000, 0


MC Commands

Playback

Enum Command parameter
10000MCC_PLAY_PAUSE ignore
10001MCC_PLAY ignore
10002MCC_STOPBOOL bDisplayWarning
10003 MCC_NEXTBOOL bNotActualNext
10004 MCC_PREVIOUS ignore
10005 MCC_SHUFFLE0: toggle shuffle; 1: shuffle, jump to PN; 2: shuffle, no jump
10006 MCC_CONTINUOUSignore
10007 MCC_UPDATE_VISignore
10008 MCC_FAST_FORWARDignore
10009 MCC_REWINDignore
10010 MCC_STOP_CONDITIONALignore
10011 MCC_SET_ZONEint nZoneIndex (-1 toggles forward, -2 toggles backwards)
10012 MCC_TOGGLE_FULLSCREENBOOL bForceReturnFromFullScreen
10013 MCC_SHOW_WINDOW,BOOL bJumpToPlayingNow
10014 MCC_MINIMIZE_WINDOWignore
10015 MCC_PLAY_CPLDB_INDEXint nIndex
10016 MCC_SHOW_DSP_STUDIOignore
10017 MCC_VOLUME_MUTE0: toggle; 1: mute; 2: unmute
10018 MCC_VOLUME_UPint nDeltaPercent
10019 MCC_VOLUME_DOWNint nDeltaPercent
10020 MCC_VOLUME_SETint nPercent
10021 MCC_SHOW_PLAYBACK_OPTIONSignore
10022 MCC_SET_PAUSEBOOL bPause (-1 toggles)
10023 MCC_SET_CURRENTLY_PLAYING_RATINGint nRating (0 means ?)
10024 MCC_SHOW_PLAYBACK_ENGINE_MENUscreen point (loword: x, hiword: y) -- must send directly
10025 MCC_PLAY_NEXT_PLAYLISTignore
10026 MCC_PLAY_PREVIOUS_PLAYLISTignore
10027 MCC_MAXIMIZE_WINDOWignore
10028 MCC_RESTORE_WINDOWignore
10029 MCC_SET_PLAYERSTATUSPLAYER_STATUS_CODES Code
10030 MCC_SET_ALTERNATE_PLAYBACK_SETTINGSBOOL bAlternateSettings (-1 toggles)
10031 MCC_SET_PREVIEW_MODE_SETTINGSlow 12 bits: int nDurationSeconds, high 12 bits: int nStartSeconds
10032 MCC_SHOW_PLAYBACK_ENGINE_DISPLAY_PLUGIN_MENUscreen point (loword: x, hiword: y) -- must send directly
10033 MCC_DVD_MENUignore
10034 MCC_SEEK_FORWARDint nMilliseconds (0 means default -- varies depending on playback type)
10035 MCC_SEEK_BACKint nMilliseconds (0 means default -- varies depending on playback type)
10036MCC_STOP_AFTER_CURRENT_FILE BOOL bStopAfterCurrentFile (-1 toggles)
10037MCC_DETACH_DISPLAY BOOL bDetach (-1 toggles)
10038MCC_SET_MODE_ZONE_SPECIFIC UI_MODES Mode

File

20000 MCC_OPEN_FILE = 20000, ignore
20001 MCC_OPEN_URL, ignore
20002 MCC_PRINT_LIST, ignore
20003 MCC_EXPORT_PLAYLIST, ignore
20004 MCC_EXPORT_ALL_PLAYLISTS, ignore
20005 MCC_UPLOAD_FILES, ignore
20006 MCC_EMAIL_FILES, ignore
20007 MCC_EXIT, BOOL bForce
20008 MCC_UPDATE_LIBRARY, ignore
20009 MCC_CLEAR_LIBRARY, ignore
20010 MCC_EXPORT_LIBRARY, ignore
20011 MCC_BACKUP_LIBRARY, ignore
20012 MCC_RESTORE_LIBRARY, ignore
20013 MCC_LIBRARY_MANAGER, ignore
20014 MCC_IMAGE_ACQUIRE, ignore
20015 MCC_PRINT_IMAGES MFKEY nKey (-1 for selected files)
20016 MCC_PRINT, ignore
20017 MCC_PRINT_PAGESETUP, ignore
20018 MCC_BROADCAST_PLAYLIST, int nPlaylistID
20019 MCC_STOP_BROADCAST_PLAYLIST int nPlaylistID
20020 MCC_PLAYLIST_BROADCAST_OPTIONS int nPlaylistID
20021 MCC_ADCAST_PLAYLIST, int nPlaylistID
20022 MCC_STOP_ADCAST_PLAYLIST int nPlaylistID
20023 MCC_PLAYLIST_ADCAST_OPTIONS, int nPlaylistID
20024 MCC_IMPORT_PLAYLIST ignore
20025 MCC_LOAD_LIBRARY int nLibraryIndex
20026 MCC_SYNC_LIBRARY ignore

Edit

21000 MCC_COPY, [ignore]
21001 MCC_PASTE, [ignore]
21002 MCC_SELECT_ALL, [ignore]
21003 MCC_SELECT_INVERT, [ignore]
21004 MCC_DELETE, [BOOL bAggressive]
21005 MCC_RENAME, [ignore]
21006 MCC_UNDO, [ignore]
21007 MCC_REDO, [ignore]
21008 MCC_QUICK_SEARCH, [BOOL bRepeatLastSearch]
21009 MCC_ADD_PLAYLIST, [MEDIAFILE_INFO_ARRAY * paryFiles = NULL]
21010 MCC_ADD_SMARTLIST, [ignore]
21011 MCC_ADD_PLAYLIST_GROUP, [ignore]
21012 MCC_PROPERTIES, [MEDIAFILE_INFO_ARRAY * paryFiles = NULL (-1 toggles)
(note: never PostMessage(...) a pointer)]
21013 MCC_TOGGLE_TAGGING_MODE, [ignore]
21014 MCC_CUT, [ignore]
21015 MCC_DESELECT_ALL, [ignore]
21016 MCC_DELETE_ALL, [BOOL bAggressive]
21017 MCC_ADD_PODCAST_FEED, [ignore]
21018 MCC_EDIT_PODCAST_FEED, [ignore]
21019 MCC_ADD_PODCAST_DEFAULTS, [ignore]
21020 MCC_CREATE_STOCK_SMARTLISTS, [ignore]
21021 MCC_ENABLE_PODCAST_DOWNLOAD, [ignore]
21022 MCC_DISABLE_PODCAST_DOWNLOAD, [ignore]
21023 MCC_EDIT_PLAYLIST [ignore]
21024 MCC_EDIT_PLAYING_NOW [ignore]
21025 MCC_EDIT_DISC_INFORMATION [ignore]
21026 MCC_EDIT_SMARTLIST [int nPlaylistID]

View

22000 MCC_TOGGLE_MODE -1: Next Mode, 0: Standard, 1: Mini, 2: Full Screen, 3: Theater View, 4: Windowed
22001 MCC_THEATER_VIEW, SHOW_THEATER_VIEW_MODES Mode 0:Toggle 1:Home 2:Playing Now 3:Audio 4:Images 5:Video 6:Playlists 7:CD & DVD 8:TV
22002 MCC_PARTY_MODE, ignore
22003 MCC_SHOW_TREE_ROOT, int nTreeRootIndex
22004 MCC_FIND_MUSIC, wchar * pstrSearch (note: memory will be deleted by receiver)
22005 MCC_BACK, int nLevels (0 does 1 level)
22006 MCC_FORWARD, int nLevels (0 does 1 level)
22007 MCC_REFRESH, ignore
22008 MCC_SET_LIST_STYLE, int nListStyle (-1 toggles)
22009 MCC_SET_MODE, -3: Current Mode (update settings), -2: Close Display, -1: Next Mode, 0: Standard, 1: Mini, 2: Full Screen, 3: Theater View, 4: Windowed
22010 MCC_SHOW_ARTISTINFO, ignore
22011 MCC_SHOW_FINDCD, ignore
22012 MCC_SHOW_RECENTLYIMPORTED, ignore
22013 MCC_SHOW_TOPHITS, ignore
22014 MCC_SHOW_RECENTLYPLAYED, ignore
22015 MCC_SET_MEDIA_MODE, int nMediaMode
22016 MCC_CONFIGURE_ACCESS_CONTROL, ignore
22017 MCC_SET_SERVER_MODE, BOOL bServerMode
22018 MCC_SET_MODE_FOR_EXTERNAL_PROGRAM_LAUNCH, int nType (0: starting external app, 1: ending external app)
22019 MCC_SET_MODE_FOR_SECOND_INSTANCE_LAUNCH UI_MODES Mode
22020 MCC_HOME ignore
22021 MCC_ROLLUP_VIEW_HEADER [BOOL bRollup (-1: toggle)]
22022 MCC_FOCUS_SEARCH_CONTROL ignore

Tools

23000 MCC_IMPORT = 23000, loword: bAutomatic, hiword: bDisableAlreadyRunningWarning
23001 MCC_RIP, ignore
23002 MCC_BURN, ignore
23003 MCC_RECORD, ignore
23004 MCC_CONVERT, ignore
23005 MCC_ANALYZE_AUDIO, ignore
23006 MCC_MEDIA_EDITOR, ignore
23007 MCC_CD_LABELER, ignore
23008 MCC_MUSICEX_MANAGER ignore
23009 MCC_PLUGIN_MANAGER,, ignore
23010 MCC_SKIN_MANAGER ignore
23011 MCC_OPTIONS int nPageID
23012 MCC_RENAME_CD_FILES, ignore
23013 MCC_WMLICENSE_MANAGER ignore
23014 MCC_SERVICES_MANAGER, ignore
23015 MCC_HANDHELD_UPLOAD loword: nDeviceSessionID (0 gets default), hiword: flags (1: sync only; 2: show warnings)
23016 MCC_HANDHELD_UPDATE_UPLOAD_WORKER_FINISHED int nDeviceSessionID
23017 MCC_HANDHELD_CLOSE_DEVICE int nDeviceSessionID
23018 MCC_HANDHELD_SHOW_OPTIONS int nDeviceSessionID
23019 MCC_HANDHELD_INFO_DUMP BOOL bShowInfo
23020 MCC_IMPORT_AUTO_RUN_NOW ignore
23021 MCC_IMPORT_AUTO_CONFIGURE ignore
23022 MCC_HANDHELD_EJECT int nDeviceSessionID

Help

24000 MCC_HELP_CONTENTS, ignore
24001 MCC_HELP_HOWTO_IMPORT_FILES, ignore
24002 MCC_HELP_HOWTO_PLAY_FILES, ignore
24003 MCC_HELP_HOWTO_RIP, ignore
24004 MCC_HELP_HOWTO_BURN, ignore
24005 MCC_HELP_HOWTO_ORGANIZE_FILES, ignore
24006 MCC_HELP_HOWTO_VIEW_SCHEMES, ignore
24007 MCC_HELP_HOWTO_MANAGE_PLAYLISTS, ignore
24008 MCC_HELP_HOWTO_EDIT_PROPERTIES, ignore
24009 MCC_HELP_HOWTO_FIND, ignore
24010 MCC_HELP_HOWTO_CONFIGURE, ignore
24011 MCC_CHECK_FOR_UPDATES, ignore
24012 MCC_BUY, ignore
24013 MCC_INSTALL_LICENSE, ignore
24014 MCC_REGISTRATION_INFO, ignore
24015 MCC_PLUS_FEATURES, ignore
24016 MCC_INTERACT, ignore
24017 MCC_SYSTEM_INFO, ignore
24018 MCC_ABOUT, ignore
24019 MCC_CONFIGURE_DEBUG_LOGGING, ignore
24020 MCC_WIKI, ignore
24021 MCC_TEST, ignore
24022 MCC_SHOW_EULA, ignore

Tree

25000 MCC_ADD_VIEW_SCHEME, ignore
25001 MCC_EDIT_VIEW_SCHEME, ignore
25002 MCC_OBSOLETE_25002, ignore
25003 MCC_OBSOLETE_25003, ignore
25004 MCC_OBSOLETE_25004, ignore
25005 MCC_OBSOLETE_25005, ignore
25006 MCC_OBSOLETE_25006, ignore
25007 MCC_OBSOLETE_25007, ignore
25008 MCC_TREE_ADD_DIRECTORY, ignore
25009 MCC_TREE_IMPORT, ignore
25010 MCC_TREE_ADD_CD_FOLDER, ignore
25011 MCC_UPDATE_FROM_CD_DATABASE, ignore
25012 MCC_SUBMIT_TO_CD_DATABASE, ignore
25013 MCC_TREE_RIP, ignore
25014 MCC_CLEAR_PLAYING_NOW, 0: all files; 1: leave playing file
25015 MCC_COPY_LISTENING_TO, BOOL bPaste
25016 MCC_TREE_SET_EXPANDED, 0: collapsed; 1: expanded
25017MCC_RESET_VIEW_SCHEMES, ignore
25018 MCC_TREE_ERASE_CD_DVD, ignore
25019 MCC_UPDATE_FROM_CDPLAYER_INI, ignore
25020 MCC_TREE_EJECT, ignore
25021 MCC_TREE_ADD_VIRTUAL_DEVICE, ignore
25022 MCC_TREE_RENAME_PLAYLIST int nPlaylistID

List

26000 MCC_LIST_UPDATE_ORDER, ignore
26001 MCC_LIST_SHUFFLE_ORDER, ignore
26002 MCC_LIST_IMPORT, ignore
26003 MCC_LIST_REMOVE_ORDER, ignore
26004 MCC_LOCATE_FILE, int nLocation (-1: on disk (internal); -2: on disk (external); 0-n: library field index)
26005 MCC_LIST_MOVE_DISK_FILES, ignore
26006 MCC_LIST_INCREMENT_SELECTION, int nDelta
26007 MCC_LIST_REMOVE_DUPLICATES, ignore
26008 MCC_LIST_AUTO_SIZE_COLUMN, int nColumn, zero-based column index (-1: all)
26009 MCC_LIST_CUSTOMIZE_VIEW, ignore
26010 MCC_LIST_COPY_DISK_FILES, ignore
26011 MCC_LIST_SET_RIP_CHECK, 0: uncheck, 1: check, -1: toggle
26012 MCC_LIST_DOWNLOAD, ignore
26013 MCC_LIST_GET_LIST_POINTER ignore
26014 MCC_LIST_UPDATE_AFTER_SIZE ignore

System

27000 MCC_KEYSTROKE int nKeyCode
27001 MCC_SHUTDOWN, ignore

Playback Engine

28000 MCC_PLAYBACK_ENGINE_ZOOM_IN = 28000 [ignore]
28001 MCC_PLAYBACK_ENGINE_ZOOM_OUT [ignore]
28002 MCC_PLAYBACK_ENGINE_UP [ignore]
28003 MCC_PLAYBACK_ENGINE_DOWN [ignore]
28004 MCC_PLAYBACK_ENGINE_LEFT [ignore]
28005 MCC_PLAYBACK_ENGINE_RIGHT [ignore]
28006 MCC_PLAYBACK_ENGINE_ENTER [ignore]
28007 MCC_IMAGE_FIRST [ignore]
28008 MCC_IMAGE_LAST [ignore]
28009 MCC_IMAGE_NEXT [ignore]
28010 MCC_IMAGE_PREVIOUS [ignore]
28011 MCC_IMAGE_PAUSE_SLIDESHOW BOOL bPause (-1 toggles)
28012 MCC_IMAGE_AUTO_PAN BOOL bAutopan (-1 toggles)
28013 MCC_IMAGE_TOGGLE_EFFECT int nDelta
28014 MCC_IMAGE_RAPID_ZOOM int nRapidZoom
28015 MCC_DVD_SET_AUDIO_STREAM int nAudioStream (-1 toggles)
28016 MCC_DVD_SHOW_MENU [ignore]
28017 MCC_TV_RECORD [ignore]
28018 MCC_TV_SNAPSHOT [ignore]
28019 MCC_TV_CHANGE_STANDARD [ignore]
28020 MCC_PLAYBACK_ENGINE_OSD_VIDEO_PROC_AMP int nIndex (0 for brightness, 1 for contrast, etc. -1 cycles)
28021 MCC_PLAYBACK_ENGINE_SET_CUR_VIDEO_PROC_AMP int nStep (... -2, -1, 1, 2, etc. 0 is invalid and will default to 1)
28022 MCC_PLAYBACK_ENGINE_SET_ASPECT_RATIO -1: cycles; 0 - 8: selects individual Aspect Ratio Modes
28023 MCC_PLAYBACK_ENGINE_SCROLL_UP, [ignore]
28024 MCC_PLAYBACK_ENGINE_SCROLL_DOWN, [ignore]
28025 MCC_PLAYBACK_ENGINE_SCROLL_LEFT [ignore]
28026 MCC_PLAYBACK_ENGINE_SCROLL_RIGHT [ignore]

Other

30000 MCC_RELOAD_MC_VIEW = 30000, ignore
30001 MCC_CUSTOMIZE_TOOLBAR, ignore
30002 MCC_PLAY_TV, ignore
30003 MCC_UPDATE_WEBPAGES, ignore
30004 MCC_SHOW_RUNNING_MC, BOOL bToggleVisibility
30005 MCC_SHOW_MENU, int nMenuID
30006 MCC_TUNE_TV, ignore
30007 MCC_PLAY_PLAYLIST, int nPlaylistID
30008 MCC_SENDTO_TOOL, 0: labeler; 1: media editor; 2: default editor; 3: ftp upload; 4: email
30009 MCC_SHOW_VIEW_INFO, new CMCViewInfo * (for internal use only)
30010 MCC_SERVICES_HOME, ignore
30011 MCC_DEVICE_CHANGED new DEVICE_CHANGE_INFO * (for internal use only)
30012 MCC_CONFIGURE_THEATER_VIEW, ignore
30013 MCC_SET_STATUSTEXT, wchar * pstrText (note: memory will be deleted by receiver)
30014 MCC_UPDATE_UI_SIZE_AFTER_MAXIMIZE, ignore
30015 MCC_REENUM_PORTABLE_DEVICES, BOOL bDeviceConnected
30016 MCC_PLAY_ADVANCED, PLAY_COMMAND * pCommand (deleted by receiver)
30017 MCC_UPDATE_STATUS_BAR, ignore
30018 MCC_REQUEST_PODCAST_UPDATE ignore
30019 MCC_REQUEST_PODCAST_PURGE ignore
30020 MCC_AUDIBLE_ACTIVATE_PC BOOL bActivate (TRUE: activate, FALSE: deactivate)]
30021 MCC_UPDATE_UI_AFTER_ACTIVE_WINDOW_CHANGE ignore

Image tools

31000 MCC_IMAGE_SET_DESKTOP_BACK, ignore
31001 MCC_IMAGE_ROTATE_LEFT, ignore
31002 MCC_IMAGE_ROTATE_RIGHT, ignore
31003 MCC_IMAGE_ROTATE_UPSIDEDOWN ignore
31004 MCC_IMAGE_RESIZE, ignore
31005 MCC_IMAGE_EDIT, ignore

Query

32000 MCC_QUERY_SECTION,

Commands

These are used internally (they get routed in the standard way).

33000 MCC_GET_SELECTED_FILES = 33000, loword: GET_SELECTION_MODES Mode, hiword: short nFlags (1: for playback)
33001 MCC_PRINTVIEW, ignore
33002 MCC_OUTPUT, ignore
33003 MCC_SETFOCUS, ignore
33004 MCC_SELECT_FILES, CMediaArray *
33005 MCC_DOUBLE_CLICK, ignore
33006 MCC_PLAY_OR_SHOW, ignore
33007 MCC_SHOW_CURRENT_FILE, int nFlags (1: force, 2: select)
33008 MCC_UPDATE_SIZES, ignore
33009 MCC_BUY_SELECTED_TRACKS, int nPurchaseFlags
33010 MCC_BUY_ALL_TRACKS, int nPurchaseFlags
33011 MCC_BUY_ALBUM, int nPurchaseFlags
33012 MCC_UPDATE_AFTER_PLUGIN_INSTALLED, ignore

Notifications

(used internally -- go to all view windows)

34000 MCC_NOTIFY_FONT_CHANGED, ignore
34001 MCC_NOTIFY_VIEW_CHANGED, ignore
34002 MCC_NOTIFY_PLAYER_INFO_CHANGED, PLAYER_INFO_CHANGES nChange
34003 MCC_NOTIFY_TOOLTIPS_CHANGED, BOOL bEnabled
34004 MCC_UPDATE, int nFlags
34005 MCC_NOTIFY_FOCUS_CHANGED, ignore
34006 MCC_SAVE_PROPERTIES, ignore
34007 MCC_NOTIFY_UI_MODE_CHANGED, ignore
34008 MCC_NOTIFY_SELECTION_CHANGED, HWND hwndSource
34009 MCC_NOTIFY_FILE_CHANGED, int nMFKey (-1: invalidates all files)
34010 MCC_NOTIFY_FILE_STATUS_CHANGED, int nMFKey (-1: invalidates all files)
34011 MCC_NOTIFY_FILE_ENSURE_VISIBLE, int nMFKey
34012 MCC_NOTIFY_GET_TAB_HWNDS, ignore
34013 MCC_NOTIFY_BURNER_QUEUE_CHANGED, int nFlags (1: folder change)
34014 MCC_NOTIFY_BURNER_PROGRESS_CHANGED, int nPercentage
34015 MCC_NOTIFY_BURNER_STATUS_CHANGED, LPCTSTR pStatus
34016 MCC_NOTIFY_BURNER_STARTED, ignore
34017 MCC_NOTIFY_BURNER_FINISHED, ignore
34018 MCC_NOTIFY_BURNER_FAILED, LPCTSTR pError
34019 MCC_NOTIFY_BURNER_CLOSE_UI, ignore
34020 MCC_NOTIFY_BURNER_PREPARE_FOR_NEXT_COPY, LPCTSTR pStatus
34021 MCC_NOTIFY_RIP_STARTED, ignore
34022 MCC_NOTIFY_RIP_FINISHED, ignore
34023 MCC_NOTIFY_RIP_FAILED, LPCTSTR pError
34024 MCC_NOTIFY_RIP_PROGRESS_CHANGED, ignore
34025 MCC_NOTIFY_RIP_QUEUE_CHANGED, ignore
34026 MCC_NOTIFY_DOWNLOAD_FINISHED, int nMFKey (-1: unknown)
34027 MCC_NOTIFY_DOWNLOAD_FAILED, int nMFKey (-1: unknown)
34028 MCC_NOTIFY_DOWNLOAD_STATUS_CHANGED, LPCTSTR pStatus
34029 MCC_NOTIFY_STATUS_CHECKER_COMPLETE, ignore
34030 MCC_NOTIFY_ZONE_CHANGED, ignore
34031 MCC_NOTIFY_DISPLAY_OWNER_CHANGED, HWND hwndOwner
34032 MCC_NOTIFY_AFTER_FIRST_UPDATE_LAYOUT_WINDOW, ignore
34033 MCC_NOTIFY_AFTER_FIRST_UPDATE_APPLY_VIEW_STATE, ignore
34034 MCC_NOTIFY_PROCESS_TIME_REMAINING, int nSecondsRemaining
34035 MCC_NOTIFY_UI_UPDATE_ENABLE_DISABLE_STATES, ignore
34036 MCC_NOTIFY_UI_SKIN_CHANGED, ignore
34037 MCC_UPDATE_WINDOW_LAYOUT, ignore
34038 MCC_NOTIFY_SAVE_UI_BEFORE_SHUTDOWN, ignore
34039 MCC_NOTIFY_UPDATE_CONTROL_BARS, ignore
34040 MCC_NOTIFY_PLAYLIST_FILES_CHANGED, int nPlaylistID
34041 MCC_NOTIFY_PLAYLIST_INFO_CHANGED, int nPlaylistID
34042 MCC_NOTIFY_PLAYLIST_ADDED, int nPlaylistID
34043 MCC_NOTIFY_PLAYLIST_REMOVED, int nPlaylistID
34044 MCC_NOTIFY_PLAYLIST_COLLECTION_CHANGED, ignore
34045 MCC_NOTIFY_HANDHELD_OPTIONS_CHANGED, ignore
34046 MCC_NOTIFY_HANDHELD_PROGRESS_CHANGED, int nPercent
34047 MCC_NOTIFY_HANDHELD_UPLOAD_STARTED, int nDeviceSessionID (0 gets default)
34048 MCC_NOTIFY_HANDHELD_NEW_DEVICE_ARRIVED, ing nDeviceSessionID
34049 MCC_NOTIFY_HANDHELD_AFTER_DEVICE_CHANGED, ignore
34050 MCC_NOTIFY_HANDHELD_QUEUE_CHANGED, ignore
34051 MCC_NOTIFY_HANDHELD_INFO_COMPLETE, ignore
34052 MCC_NOTIFY_HANDHELD_AFTER_UPLOAD_FINISHED, ignore
34053 MCC_NOTIFY_COMPACT_MEMORY, ignore
34054 MCC_NOTIFY_SEARCH_CHANGED, ignore

Zones

To issue playback commands to a specific zone, mask these values with the parameter:

Current: 0         (0x00000000 hex)
Zone 0:  16777216  (0x01000000 hex)
Zone 1:  33554432  (0x02000000 hex)
Zone 2:  50331648  (0x03000000 hex)
Zone 3:  67108864  (0x04000000 hex)
Zone 4:  83886080  (0x05000000 hex)
Zone 5:  100663296 (0x06000000 hex)
...
Zone 31: 520093696 (0x1F000000 hex)

For the geeks, the actual parameter is bits 0-23 and the Zone is bits 24-29 of the 32-bit parameter (see the C++ macros below if you like). If bit 32 is set, Media Center assumes you passed in a simple negative number, so the Zone portion is discarded.

Creating the final parameter value:

For parameters >= 0
 final parameter value = Zone mask + parameter

For parameters < 0
 final parameter value = Zone mask + (16777216 + parameter)

Example:

parameter -1 to Zone 3: 67108864 + (16777216 + -1) = 83886079
Zone: OperationMCC CommandWparamLparam
Z0: Play/PauseMCC_PLAY_PAUSE10000 16777216
Z0: Play Track from BeginningMCC_PLAY10001 16777216
Z0: StopMCC_STOP10002 16777216
Z0: NextMCC_NEXT10003 16777216
Z0: PreviousMCC_PREVIOUS10004 16777216
Z0: Shuffle Mode-ToggleMCC_SHUFFLE10005 16777216
Z0: ReShuffle-Jump to PNMCC_SHUFFLE1000516777217
Z0: ReShuffle-No Jump to PNMCC_SHUFFLE1000516777218
Z0: Continuous Mode-ToggleMCC_CONTINUOUS10006 16777216
Z0: FFMCC_FAST_FORWARD10008 16777216
Z0: RewMCC_REWIND10009 16777216
Z0: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 16777216
Z0: MuteMCC_VOLUME_MUTE10017 16777216
Z0: Vol +5MCC_VOLUME_UP1001816777221
Z0: Vol -5MCC_VOLUME_DOWN1001916777221
Z0: Vol 0MCC_VOLUME_SET10020 16777216
Z0: Vol 25MCC_VOLUME_SET1002016777241
Z0: Vol 50MCC_VOLUME_SET1002016777266
Z0: Vol 75MCC_VOLUME_SET1002016777291
Z0: Vol 100MCC_VOLUME_SET1002016777316
Z0: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 16777216
Z0: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING1002316777217
Z0: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING1002316777218
Z0: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING1002316777219
Z0: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING1002316777220
Z0: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING1002316777221
 
Z1: Play/PauseMCC_PLAY_PAUSE10000 33554432
Z1: Play Track from BeginningMCC_PLAY10001 33554432
Z1: StopMCC_STOP10002 33554432
Z1: NextMCC_NEXT10003 33554432
Z1: PreviousMCC_PREVIOUS10004 33554432
Z1: Shuffle Mode-ToggleMCC_SHUFFLE10005 33554432
Z1: ReShuffle-Jump to PNMCC_SHUFFLE1000533554433
Z1: ReShuffle-No Jump to PNMCC_SHUFFLE1000533554434
Z1: Continuous Mode-ToggleMCC_CONTINUOUS10006 33554432
Z1: FFMCC_FAST_FORWARD10008 33554432
Z1: RewMCC_REWIND10009 33554432
Z1: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 33554432
Z1: MuteMCC_VOLUME_MUTE10017 33554432
Z1: Vol +5MCC_VOLUME_UP1001833554437
Z1: Vol -5MCC_VOLUME_DOWN1001933554437
Z1: Vol 0MCC_VOLUME_SET10020 33554432
Z1: Vol 25MCC_VOLUME_SET1002033554457
Z1: Vol 50MCC_VOLUME_SET1002033554482
Z1: Vol 75MCC_VOLUME_SET1002033554507
Z1: Vol 100MCC_VOLUME_SET1002033554532
Z1: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 33554432
Z1: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING1002333554433
Z1: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING1002333554434
Z1: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING1002333554435
Z1: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING1002333554436
Z1: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING1002333554437
 
Z2: Play/PauseMCC_PLAY_PAUSE10000 50331648
Z2: Play Track from BeginningMCC_PLAY10001 50331648
Z2: StopMCC_STOP10002 50331648
Z2: NextMCC_NEXT10003 50331648
Z2: PreviousMCC_PREVIOUS10004 50331648
Z2: Shuffle Mode-ToggleMCC_SHUFFLE10005 50331648
Z2: ReShuffle-Jump to PNMCC_SHUFFLE1000550331649
Z2: ReShuffle-No Jump to PNMCC_SHUFFLE1000550331650
Z2: Continuous Mode-ToggleMCC_CONTINUOUS10006 50331648
Z2: FFMCC_FAST_FORWARD10008 50331648
Z2: RewMCC_REWIND10009 50331648
Z2: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 50331648
Z2: MuteMCC_VOLUME_MUTE10017 50331648
Z2: Vol +5MCC_VOLUME_UP1001850331653
Z2: Vol -5MCC_VOLUME_DOWN1001950331653
Z2: Vol 0MCC_VOLUME_SET10020 50331648
Z2: Vol 25MCC_VOLUME_SET1002050331673
Z2: Vol 50MCC_VOLUME_SET1002050331698
Z2: Vol 75MCC_VOLUME_SET1002050331723
Z2: Vol 100MCC_VOLUME_SET1002050331748
Z2: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 50331648
Z2: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING1002350331649
Z2: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING1002350331650
Z2: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING1002350331651
Z2: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING1002350331652
Z2: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING1002350331653
 
Z3: Play/PauseMCC_PLAY_PAUSE1000067108864
Z3: Play Track from BeginningMCC_PLAY10001 67108864
Z3: StopMCC_STOP10002 67108864
Z3: NextMCC_NEXT10003 67108864
Z3: PreviousMCC_PREVIOUS10004 67108864
Z3: Shuffle Mode-ToggleMCC_SHUFFLE10005 67108864
Z3: ReShuffle-Jump to PNMCC_SHUFFLE1000567108865
Z3: ReShuffle-No Jump to PNMCC_SHUFFLE1000567108866
Z3: Continuous Mode-ToggleMCC_CONTINUOUS10006 67108864
Z3: FFMCC_FAST_FORWARD10008 67108864
Z3: RewMCC_REWIND10009 67108864
Z3: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 67108864
Z3: MuteMCC_VOLUME_MUTE10017 67108864
Z3: Vol +5MCC_VOLUME_UP1001867108869
Z3: Vol -5MCC_VOLUME_DOWN1001967108869
Z3: Vol 0MCC_VOLUME_SET10020 67108864
Z3: Vol 25MCC_VOLUME_SET1002067108889
Z3: Vol 50MCC_VOLUME_SET1002067108914
Z3: Vol 75MCC_VOLUME_SET1002067108939
Z3: Vol 100MCC_VOLUME_SET1002067108964
Z3: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 67108864
Z3: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING1002367108865
Z3: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING1002367108866
Z3: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING1002367108867
Z3: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING1002367108868
Z3: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING1002367108869
 
Z4: Play/PauseMCC_PLAY_PAUSE10000 83886080
Z4: Play Track from BeginningMCC_PLAY10001 83886080
Z4: StopMCC_STOP10002 83886080
Z4: NextMCC_NEXT10003 83886080
Z4: PreviousMCC_PREVIOUS10004 83886080
Z4: Shuffle Mode-ToggleMCC_SHUFFLE10005 83886080
Z4: ReShuffle-Jump to PNMCC_SHUFFLE1000583886081
Z4: ReShuffle-No Jump to PNMCC_SHUFFLE1000583886082
Z4: Continuous Mode-ToggleMCC_CONTINUOUS10006 83886080
Z4: FFMCC_FAST_FORWARD10008 83886080
Z4: RewMCC_REWIND10009 83886080
Z4: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 83886080
Z4: MuteMCC_VOLUME_MUTE10017 83886080
Z4: Vol +5MCC_VOLUME_UP1001883886085
Z4: Vol -5MCC_VOLUME_DOWN1001983886085
Z4: Vol 0MCC_VOLUME_SET10020 83886080
Z4: Vol 25MCC_VOLUME_SET1002083886105
Z4: Vol 50MCC_VOLUME_SET1002083886130
Z4: Vol 75MCC_VOLUME_SET1002083886155
Z4: Vol 100MCC_VOLUME_SET1002083886180
Z4: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 83886080
Z4: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING1002383886081
Z4: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING1002383886082
Z4: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING1002383886083
Z4: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING1002383886084
Z4: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING1002383886085
 
Z5: Play/PauseMCC_PLAY_PAUSE10000 100663296
Z5: Play Track from BeginningMCC_PLAY10001 100663296
Z5: StopMCC_STOP10002 100663296
Z5: NextMCC_NEXT10003 100663296
Z5: PreviousMCC_PREVIOUS10004 100663296
Z5: Shuffle Mode-ToggleMCC_SHUFFLE10005 100663296
Z5: ReShuffle-Jump to PNMCC_SHUFFLE10005100663297
Z5: ReShuffle-No Jump to PNMCC_SHUFFLE10005100663298
Z5: Continuous Mode-ToggleMCC_CONTINUOUS10006 100663296
Z5: FFMCC_FAST_FORWARD10008 100663296
Z5: RewMCC_REWIND10009 100663296
Z5: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 100663296
Z5: MuteMCC_VOLUME_MUTE10017 100663296
Z5: Vol +5MCC_VOLUME_UP10018100663301
Z5: Vol -5MCC_VOLUME_DOWN10019100663301
Z5: Vol 0MCC_VOLUME_SET10020 100663296
Z5: Vol 25MCC_VOLUME_SET10020100663321
Z5: Vol 50MCC_VOLUME_SET10020100663346
Z5: Vol 75MCC_VOLUME_SET10020100663371
Z5: Vol 100MCC_VOLUME_SET10020100663396
Z5: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 100663296
Z5: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING10023100663297
Z5: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING10023100663298
Z5: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING10023100663299
Z5: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING10023100663300
Z5: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING10023100663301

Other Defines

// the WM_APP based message (WM_APP = 32768, so WM_MC_COMMAND = 33768)
#define WM_MC_COMMAND (WM_APP + 1000)

// extended MC_COMMAND message that takes a structure with extra information (internal use only)
#define WM_MC_COMMAND_EX (WM_APP + 1001)

// return value for unhandled MCC commands
#define MCC_UNHANDLED 0

// flags for command enable, disable, and check
enum MCC_UPDATEUI_FLAGS
{
    MCC_UPDATEUI_ENABLE  = 1,
    MCC_UPDATEUI_DISABLE = 2,
    MCC_UPDATEUI_PRESSED = 4,
};

Helper macros

#define IS_MCC_COMMAND_IN_RANGE(INDEX, FIRST, LAST) (((abs((int)INDEX)) >= FIRST) && ((abs((int)INDEX)) < LAST) || ((abs((int)INDEX)) >= FIRST + MCC_CUSTOMIZATION_OFFSET) && ((abs((int)INDEX)) < LAST + MCC_CUSTOMIZATION_OFFSET))
#define IS_MCC_COMMAND_IN_SECTION(INDEX, FIRST) IS_MCC_COMMAND_IN_RANGE(INDEX, FIRST, FIRST + 1000)
#define IS_VALID_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_RANGE(INDEX, MCC_FIRST, MCC_LAST)
#define IS_PLAYBACK_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_PLAYBACK_SECTION)
#define IS_FILE_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_FILE_SECTION)
#define IS_EDIT_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_EDIT_SECTION)
#define IS_VIEW_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_VIEW_SECTION)
#define IS_TOOL_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_TOOLS_SECTION)
#define IS_HELP_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_HELP_SECTION)
#define IS_TREE_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_TREE_SECTION)
#define IS_LIST_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_LIST_SECTION)
#define IS_SYSTEM_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_SYSTEM_SECTION)
#define IS_PLAYBACK_ENGINE_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_PLAYBACK_ENGINE_SECTION)
#define IS_IMAGE_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_IMAGE_SECTION)
#define IS_INTERNAL_COMMAND_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_COMMANDS_SECTION)
#define IS_NOTIFY_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_NOTIFICATIONS_SECTION)
#define IS_CUSTOMIZATION_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_RANGE(INDEX, MCC_FIRST + MCC_CUSTOMIZATION_OFFSET, MCC_LAST + MCC_CUSTOMIZATION_OFFSET)

#define MAKE_MCC_PLAYBACK_PARAM(PARAM, ZONE) (((ZONE) == -1) ? ((PARAM) & 0x00FFFFFF) : ((((ZONE) + 1) << 24) & 0xFF000000) | ((PARAM) & 0x00FFFFFF))
#define GET_MCC_PLAYBACK_PARAM(PARAM) (((PARAM) & 0x400000) ? ((PARAM) & 0xFFFFFF) - 0x1000000 : ((PARAM) & 0xFFFFFF))
#define GET_MCC_PLAYBACK_ZONE(PARAM) (((PARAM) & 0x80000000) ? -1 : (((PARAM) >> 24) - 1))

For Internal Use

// update flags
#define MCC_UPDATE_FLAG_THUMBNAILS                           (1 << 0)
#define MCC_UPDATE_FLAG_FILE_PROPERTIES                      (1 << 1)
#define MCC_UPDATE_FLAG_FILE_ADDED_OR_REMOVED                (1 << 2)
#define MCC_UPDATE_FLAG_TREE_STRUCTURE                       (1 << 3)
#define MCC_UPDATE_FLAG_REFILL_LIST                          (1 << 4)
#define MCC_UPDATE_FLAG_ITEM_DELETED                         (1 << 5)
#define MCC_UPDATE_FLAG_NO_PRESERVE_VIEW_STATE               (1 << 6)
#define MCC_UPDATE_FLAG_WEB_VIEW                             (1 << 7)

// update all
#define MCC_UPDATE_FLAG_ALL                                  (0x7FFFFFFF & ~(MCC_UPDATE_FLAG_NO_PRESERVE_VIEW_STATE))

// UI modes
enum UI_MODES
{
    // unknown
    UI_MODE_UNKNOWN = -2000,

    // internal modes
    UI_MODE_INTERNAL_NO_UI = -1000,
    UI_MODE_INTERNAL_STANDARD,
    UI_MODE_INTERNAL_MINI_FREEFORM,
    UI_MODE_INTERNAL_MINI_SLIM,
    UI_MODE_INTERNAL_DISPLAY_WINDOWED,
    UI_MODE_INTERNAL_DISPLAY_FULLSCREEN,
    UI_MODE_INTERNAL_THEATER,

    // toggles, shortcuts, etc.
    UI_MODE_SHORTCUT_TOGGLE_DISPLAY_AND_LAST_USER_INPUT_MODE = -7,
    UI_MODE_SHORTCUT_TOGGLE_DISPLAY_EXCLUDE_THEATER_VIEW = -6,
    UI_MODE_SHORTCUT_TOGGLE_DISPLAY = -5,
    UI_MODE_SHORTCUT_LAST_SHUTDOWN = -4,
    UI_MODE_SHORTCUT_CURRENT = -3,
    UI_MODE_SHORTCUT_CLOSE_DISPLAY = -2,
    UI_MODE_SHORTCUT_NEXT = -1,

    // modes presented to the user
    UI_MODE_STANDARD = 0,
    UI_MODE_MINI,
    UI_MODE_DISPLAY,
    UI_MODE_THEATER,
    UI_MODE_COUNT,
};

// player changes
#define PLAYER_INFO_CHANGE_ALL                               0xFFFF
#define PLAYER_INFO_CHANGE_PLAYERSTATE                       (1 << 0)
#define PLAYER_INFO_CHANGE_VOLUME                            (1 << 1)
#define PLAYER_INFO_CHANGE_FILEINFO                          (1 << 2)
#define PLAYER_INFO_CHANGE_PLAYLISTSTATE                     (1 << 3)
#define PLAYER_INFO_CHANGE_EQCHANGE                          (1 << 4)
#define PLAYER_INFO_CHANGE_IMAGE                             (1 << 5)
#define PLAYER_INFO_CHANGE_PLAYING_FILE                      (1 << 6)

// player status codes
enum PLAYER_STATUS_CODES
{
    PLAYER_STATUS_CODE_BUFFERING,
    PLAYER_STATUS_CODE_LOCATING,
    PLAYER_STATUS_CODE_CONNECTING,
    PLAYER_STATUS_CODE_DOWNLOADING_CODEC,
    PLAYER_STATUS_CODE_ACQUIRING_LICENSE,
    PLAYER_STATUS_CODE_INDIVIDUALIZE_STARTING,
    PLAYER_STATUS_CODE_INDIVIDUALIZE_CONNECTING,
    PLAYER_STATUS_CODE_INDIVIDUALIZE_REQUESTING,
    PLAYER_STATUS_CODE_INDIVIDUALIZE_RECEIVING,
    PLAYER_STATUS_CODE_INDIVIDUALIZE_COMPLETED,
};

// theater view modes
enum SHOW_THEATER_VIEW_MODES
{
    SHOW_THEATER_VIEW_MODE_TOGGLE_THEATER_VIEW,
    SHOW_THEATER_VIEW_MODE_HOME,
    SHOW_THEATER_VIEW_MODE_PLAYING_NOW,
    SHOW_THEATER_VIEW_MODE_AUDIO,
    SHOW_THEATER_VIEW_MODE_IMAGES,
    SHOW_THEATER_VIEW_MODE_VIDEOS,
    SHOW_THEATER_VIEW_MODE_PLAYLISTS,
    SHOW_THEATER_VIEW_MODE_CD_DVD,
    SHOW_THEATER_VIEW_MODE_TV,
};

// get selection modes
enum GET_SELECTION_MODES
{
    GET_SELECTION_EXACT,
    GET_SELECTION_ALL_ON_NONE,
    GET_SELECTION_ALL_ON_ONE_OR_NONE,
    GET_SELECTION_ALL,
};