Media Center Core Commands

From JRiverWiki
Revision as of 21:38, 25 September 2012 by MrC (talk | contribs) (Playback - added mode 4 to 10006)

Jump to: navigation, search

Introduction

MC Core Commands are used to control various aspects of Media Center via software or command line. Each command consists of a name (or number), followed by an optional parameter which selects or specifies the particular command behavior.

The MC Core Commands in the tables below have been auto-generated from the file MCCommands.h and should be accurate as of:

MCCommands.h: 2011-06-21
MC Version:   16.0.116

The full, C++ header is available here (caution: may be out of date): J. River Media Core Commands Header File

Notes

  • Save the MCCommands.h file to your hard drive to avoid potential line break issues.
  • Commands have changed over time; use the Wiki's page history to see previous versions of this page. Some commands may only work with the latest version of Media Center.

How To Issue Media Core Commands

Look up the command name / number and its parameter in the tables below. For example, the command to toggle between play and pause is MCC_PLAY_PAUSE. It has command number (enum value) 10000 and its accompanying parameter is ignored. Some MCC commands may be targeted a particular Zone - see Specifying Zones.

Issuing a command from the command line

Assuming you are familiar with the first section of The Command Line, the general syntax for issuing an MCC command from the Windows command line (or equivalent) is:

MC<version>.exe /MCC <command number>, <parameter>

Note: Command numbers must be used; command names are not used on the command line.

Example: To toggle between play and pause in MC16, use the command:

MC16.exe /MCC 10000, 0

Note: The MCC commands can be entered in Vista and Windows 7 directly into Search Files and Programs under the Windows Start menu, or as commands in a Windows command shell, which can be launched in Vista and Windows 7 by entering cmd.exe in Search Files and Programs under the Windows Start menu. It is available under the Accessories menu as Command Prompt in previous versions of Windows.

Issuing a command from C++

The calling syntax for posting a WM_MC_COMMAND -based message to the MC frame is demonstrated in the example below.

Example: To post a command to toggle between play and pause

HWND hwndMC = FindWindow(_T("MJFrame"), NULL);
PostMessage(hwndMC, WM_MC_COMMAND, MCC_PLAY_PAUSE, 0);

Notes on usage

  • Use command numbers when calling from the command line, enum names from within software (e.g. MCC_PLAY_PAUSE).
  • Set parameter to 0 if unused.


MC Commands

Playback

Range: 10,000 to 20,000

Note: See Specifying Zones to learn about issuing commands to a specific Zone.

EnumCommandParameter
10000MCC_PLAY_PAUSEignore
10001MCC_PLAYignore
10002MCC_STOPbool bDisplayError
10003MCC_NEXTbool bNotActualNext
10004MCC_PREVIOUSignore
10005MCC_SHUFFLE0: toggle shuffle mode; 1: shuffle, jump to PN; 2: shuffle, no jump; 3: off; 4: on; 5:automatic
10006MCC_CONTINUOUS0: toggle continuous; 1: off; 2: playlist; 3: song; 4: stop after each
10007MCC_OBSOLETE_10007ignore
10008MCC_FAST_FORWARDint nRate
10009MCC_REWINDint nRate
10010MCC_STOP_CONDITIONALignore
10011MCC_SET_ZONEint nZoneIndex (-1 toggles forward, -2 toggles backwards)
10012MCC_TOGGLE_DISPLAYbool bExcludeTheaterView
10013MCC_SHOW_WINDOWbool bJumpToPlayingNow
10014MCC_MINIMIZE_WINDOWignore
10015MCC_PLAY_CPLDB_INDEXint nIndex
10016MCC_SHOW_DSP_STUDIOignore
10017MCC_VOLUME_MUTE0: toggle; 1: mute; 2: unmute
10018MCC_VOLUME_UPint nDeltaPercent
10019MCC_VOLUME_DOWNint nDeltaPercent
10020MCC_VOLUME_SETint nPercent
10021MCC_SHOW_PLAYBACK_OPTIONSignore
10022MCC_SET_PAUSEbool bPause (-1 toggles)
10023MCC_SET_CURRENTLY_PLAYING_RATINGint nRating (1 through 5; 0 clears, but see here.)
10024MCC_SHOW_PLAYBACK_ENGINE_MENUscreen point (loword: x, hiword: y) -- must send directly
10025MCC_PLAY_NEXT_PLAYLISTignore
10026MCC_PLAY_PREVIOUS_PLAYLISTignore
10027MCC_MAXIMIZE_WINDOWignore
10028MCC_RESTORE_WINDOWignore
10029MCC_SET_PLAYERSTATUSPLAYER_STATUS_CODES Code
10030MCC_SET_ALTERNATE_PLAYBACK_SETTINGSbool bAlternateSettings (-1 toggles)
10031MCC_SET_PREVIEW_MODE_SETTINGSlow 12 bits: int nDurationSeconds, high 12 bits: int nStartSeconds
10032MCC_SHOW_PLAYBACK_ENGINE_DISPLAY_PLUGIN_MENUscreen point (loword: x, hiword: y) -- must send directly
10033MCC_DVD_MENUignore
10034MCC_SEEK_FORWARDint nMilliseconds (0 means default -- varies depending on playback type)
10035MCC_SEEK_BACKint nMilliseconds (0 means default -- varies depending on playback type)
10036MCC_STOP_AFTER_CURRENT_FILEbool bStopAfterCurrentFile (-1 toggles)
10037MCC_DETACH_DISPLAYbool bDetach (-1 toggles)
10038MCC_SET_MODE_ZONE_SPECIFICUI_MODES Mode
10039MCC_STOP_INTERNALignore
10040MCC_PLAYING_NOW_REMOVE_DUPLICATESignore
10041MCC_SHUFFLE_REMAININGignore
10042MCC_PLAY_FIRST_FILEignore
10043MCC_PLAY_LAST_FILEignore
10044MCC_PLAY_FILE_BY_STRINGBSTR bstrFile (deleted by receiver)
10045MCC_PLAY_FILE_AGAINignore
10046MCC_HANDLE_PLAYBACK_ERRORignore
10047MCC_PLAY_AUTOMATIC_PLAYLISTignore
10048MCC_SEEKint nPositionMilliseconds
10049MCC_CLEAR_PLAYING_NOW_ZONE_SPECIFIC0: all files; 1: leave playing file
10050MCC_PLAY_RADIO_LAST_FMignore
10051MCC_SHOW_ON_SCREEN_DISPLAY0: position bar
10052MCC_SET_SUBTITLESint nIndex (-1 toggles forward, -2 toggles backwards)
10053MCC_SET_AUDIO_STREAMint nIndex (-1 toggles forward, -2 toggles backwards)
10054MCC_SET_VIDEO_STREAMint nIndex (-1 toggles forward, -2 toggles backwards)
10055MCC_VIDEO_SCREEN_GRAB0: use as thumbnail; 1: save as external file
10056MCC_SET_VOLUME_MODESet volume mode (0=application, 1=internal, 2=system, 3=disabled)
10057MCC_RESTART_PLAYBACKignore

File

Range: 20,000 to 21,000

EnumCommandParameter
20000MCC_OPEN_FILEignore
20001MCC_OPEN_URLignore
20002MCC_PRINT_LISTignore
20003MCC_EXPORT_PLAYLISTint nPlaylistID (-1 for active view)
20004MCC_EXPORT_ALL_PLAYLISTSbool bSilent
20005MCC_UPLOAD_FILESignore
20006MCC_EMAIL_FILESignore
20007MCC_EXITint nMode (0: normal, 1: force close (close media server), 2: force close (allow media server))
20008MCC_UPDATE_LIBRARYignore
20009MCC_CLEAR_LIBRARYignore
20010MCC_EXPORT_LIBRARYignore
20011MCC_BACKUP_LIBRARYignore
20012MCC_RESTORE_LIBRARYignore
20013MCC_LIBRARY_MANAGERignore
20014MCC_IMAGE_ACQUIREignore
20015MCC_PRINT_IMAGESMFKEY nKey (-1 for selected files)
20016MCC_PRINTignore
20017MCC_OBSOLETE_20017ignore
20018MCC_OBSOLETE_20018ignore
20019MCC_OBSOLETE_20019ignore
20020MCC_OBSOLETE_20020ignore
20021MCC_OBSOLETE_20021ignore
20022MCC_OBSOLETE_20022ignore
20023MCC_OBSOLETE_20023ignore
20024MCC_IMPORT_PLAYLISTignore
20025MCC_LOAD_LIBRARYint nLibraryIndex
20026MCC_SYNC_LIBRARYignore
20027MCC_EMAIL_PODCAST_FEEDignore
20028MCC_LOAD_LIBRARY_READ_ONLYint nLibraryIndex
20029MCC_ADD_LIBRARYignore
20030MCC_EXPORT_ITUNESignore
20031MCC_DISCONNECT_LIBRARYignore
20032MCC_SYNC_WITH_LIBRARY_SERVERignore
20033MCC_STOP_ALL_ZONESbool bStopRemoteZones
20034MCC_CLONE_LIBRARYint nLibraryIndex

Edit

Range: 21,000 to 22,000

EnumCommandParameter
21000MCC_COPYignore
21001MCC_PASTEignore
21002MCC_SELECT_ALLignore
21003MCC_SELECT_INVERTignore
21004MCC_DELETEbool bAggressive
21005MCC_RENAMEignore
21006MCC_UNDOignore
21007MCC_REDOignore
21008MCC_QUICK_SEARCHbool bRepeatLastSearch
21009MCC_ADD_PLAYLISTMEDIAFILE_INFO_ARRAY * paryFiles = NULL
21010MCC_ADD_SMARTLISTignore
21011MCC_ADD_PLAYLIST_GROUPignore
21012MCC_PROPERTIESMEDIAFILE_INFO_ARRAY * paryFiles = NULL (-1 toggles) (note: never PostMessage(...) a pointer)
21013MCC_TOGGLE_TAGGING_MODEignore
21014MCC_CUTignore
21015MCC_DESELECT_ALLignore
21016MCC_DELETE_ALLbool bAggressive
21017MCC_ADD_PODCAST_FEEDignore
21018MCC_EDIT_PODCAST_FEEDignore
21019MCC_ADD_PODCAST_DEFAULTSignore
21020MCC_CREATE_STOCK_SMARTLISTSignore
21021MCC_ENABLE_PODCAST_DOWNLOADignore
21022MCC_DISABLE_PODCAST_DOWNLOADignore
21023MCC_EDIT_PLAYLISTignore
21024MCC_EDIT_PLAYING_NOWint nZoneID
21025MCC_EDIT_DISC_INFORMATIONignore
21026MCC_EDIT_SMARTLISTint nPlaylistID
21027MCC_REFRESH_PODCAST_FEEDignore
21028MCC_LOOKUP_MOVIE_INFORMATIONignore
21029MCC_ADD_ZONEignore
21030MCC_ADD_AUTOMATIC_PLAYLISTignore
21031MCC_SET_WRITE_TAGSbool bWriteTags (-1 toggles)
21032MCC_PASTE_TAGSignore

View

Range: 22,000 to 23,000

EnumCommandParameter
22000MCC_TOGGLE_MODE-1: Next Mode, 0: Standard, 1: Mini, 2: Display, 3: Theater View, 4: Cover View
22001MCC_THEATER_VIEW0:Toggle, 1:Home, 2:Playing Now, 3:Audio, 4:Images, 5:Video, 6:Playlists, 7:CD & DVD, 8:TV
22002MCC_PARTY_MODEignore
22003MCC_SHOW_TREE_ROOTint nTreeRootIndex
22004MCC_FIND_MEDIAwchar * pstrSearch (note: memory will be deleted by receiver)
22005MCC_BACKint nLevels (0 does 1 level)
22006MCC_FORWARDint nLevels (0 does 1 level)
22007MCC_REFRESHint nFlags (1: no webpage refresh)
22008MCC_SET_LIST_STYLEint nListStyle (-1 toggles)
22009MCC_SET_MODE-3: Current Mode (update settings), -2: Close Display, -1: Next Mode, 0: Standard, 1: Mini, 2: Display, 3: Theater View, 4: Cover View
22010MCC_OBSOLETE_22010ignore
22011MCC_OBSOLETE_22011ignore
22012MCC_SHOW_RECENTLYIMPORTEDignore
22013MCC_SHOW_TOPHITSignore
22014MCC_SHOW_RECENTLYPLAYEDignore
22015MCC_SET_MEDIA_MODEint nMediaMode
22016MCC_CONFIGURE_ACCESS_CONTROLignore
22017MCC_SET_SERVER_MODEbool bServerMode
22018MCC_SET_MODE_FOR_EXTERNAL_PROGRAM_LAUNCHint nType (0: starting external app, 1: ending external app)
22019MCC_SET_MODE_FOR_SECOND_INSTANCE_LAUNCHUI_MODES Mode
22020MCC_HOMEignore
22021MCC_ROLLUP_VIEW_HEADERbool bRollup (-1: toggle)
22022MCC_FOCUS_SEARCH_CONTROLignore
22023MCC_SET_ACTIVE_VIEW_KEYint nViewKey (-1: toggle, -2: toggle backwards, -3: new view)
22024MCC_CLOSE_VIEW_KEYint nViewKey (-1: current view)
22025MCC_VIEW_ZOOM_SETint nZoomPercentage
22026MCC_VIEW_ZOOM_INCREMENTint nZoomDeltaPercentage
22027MCC_FIND_MEDIA_WITH_WIZARDignore

Tools

Range: 23,000 to 24,000

EnumCommandParameter
23000MCC_IMPORTint nFlags (1: bDisableAlreadyRunningWarning, 2: bFirstImportMode)
23001MCC_RIP_CDignore
23002MCC_BURNignore
23003MCC_RECORD_AUDIOignore
23004MCC_CONVERTignore
23005MCC_ANALYZE_AUDIOignore
23006MCC_MEDIA_EDITORignore
23007MCC_CD_LABELERignore
23008MCC_OBSOLETE_23008ignore
23009MCC_PLUGIN_MANAGERignore
23010MCC_SKIN_MANAGERignore
23011MCC_OPTIONSint nPageID
23012MCC_RENAME_CD_FILESignore
23013MCC_OBSOLETE_23013ignore
23014MCC_OBSOLETE_23014ignore
23015MCC_HANDHELD_UPLOADloword: nDeviceSessionID (0 gets default), hiword: flags (1: sync only; 2: show warnings)
23016MCC_HANDHELD_UPDATE_UPLOAD_WORKER_FINISHEDint nDeviceSessionID
23017MCC_HANDHELD_CLOSE_DEVICEint nDeviceSessionID
23018MCC_HANDHELD_SHOW_OPTIONSint nDeviceSessionID
23019MCC_HANDHELD_INFO_DUMPbool bShowInfo
23020MCC_IMPORT_AUTO_RUN_NOWbool bSilent
23021MCC_IMPORT_AUTO_CONFIGUREignore
23022MCC_HANDHELD_EJECTint nDeviceSessionID
23023MCC_RECORD_TVignore
23024MCC_FIND_AND_REPLACEignore
23025MCC_CLEAN_PROPERTIESignore
23026MCC_FILL_TRACK_ORDERignore
23027MCC_MOVE_COPY_FIELDSignore
23028MCC_REMOVE_TAGSignore
23029MCC_UPDATE_TAGS_FROM_DBignore
23030MCC_UPDATE_DB_FROM_TAGSignore
23031MCC_LOOKUP_TRACK_INFO_FROM_INTERNETignore
23032MCC_SUBMIT_TRACK_INFO_TO_INTERNETignore
23033MCC_OBSOLETE_23033ignore
23034MCC_FILL_PROPERTIES_FROM_FILENAMEignore
23035MCC_RENAME_FILES_FROM_PROPERTIESignore
23036MCC_COVER_ART_ADD_FROM_FILEignore
23037MCC_COVER_ART_QUICK_ADD_FROM_FILEignore
23038MCC_COVER_ART_GET_FROM_INTERNETignore
23039MCC_COVER_ART_SUBMIT_TO_INTERNETignore
23040MCC_COVER_ART_GET_FROM_SCANNERignore
23041MCC_COVER_ART_SELECT_SCANNERignore
23042MCC_COVER_ART_GET_FROM_CLIPBOARDignore
23043MCC_COVER_ART_COPY_TO_CLIPBOARDignore
23044MCC_COVER_ART_REMOVEignore
23045MCC_COVER_ART_PLAYignore
23046MCC_COVER_ART_SAVE_TO_EXTERNAL_FILEignore
23047MCC_COVER_ART_REBUILD_THUMBNAILignore
23048MCC_RINGTONEignore
23049MCC_CREATE_TEST_CLIPSignore

Help

Range: 24,000 to 25,000

EnumCommandParameter
24000MCC_HELP_CONTENTSignore
24001MCC_HELP_HOWTO_IMPORT_FILESignore
24002MCC_HELP_HOWTO_PLAY_FILESignore
24003MCC_HELP_HOWTO_RIPignore
24004MCC_HELP_HOWTO_BURNignore
24005MCC_HELP_HOWTO_ORGANIZE_FILESignore
24006MCC_HELP_HOWTO_VIEW_SCHEMESignore
24007MCC_HELP_HOWTO_MANAGE_PLAYLISTSignore
24008MCC_HELP_HOWTO_EDIT_PROPERTIESignore
24009MCC_HELP_HOWTO_FINDignore
24010MCC_HELP_HOWTO_CONFIGUREignore
24011MCC_CHECK_FOR_UPDATESignore
24012MCC_BUYignore
24013MCC_INSTALL_LICENSEignore
24014MCC_REGISTRATION_INFOignore
24015MCC_PLUS_FEATURESignore
24016MCC_INTERACTignore
24017MCC_SYSTEM_INFOignore
24018MCC_ABOUTignore
24019MCC_CONFIGURE_DEBUG_LOGGINGignore
24020MCC_WIKIignore
24021MCC_TESTignore
24022MCC_SHOW_EULAignore
24023MCC_BENCHMARKignore

Tree

Range: 25,000 to 26,000

EnumCommandParameter
25000MCC_ADD_VIEW_SCHEMEignore
25001MCC_EDIT_VIEW_SCHEMEignore
25002MCC_OBSOLETE_25002ignore
25003MCC_OBSOLETE_25003ignore
25004MCC_OBSOLETE_25004ignore
25005MCC_OBSOLETE_25005ignore
25006MCC_OBSOLETE_25006ignore
25007MCC_OBSOLETE_25007ignore
25008MCC_TREE_ADD_DIRECTORYignore
25009MCC_TREE_IMPORTignore
25010MCC_TREE_ADD_CD_FOLDERignore
25011MCC_UPDATE_FROM_CD_DATABASEignore
25012MCC_SUBMIT_TO_CD_DATABASEignore
25013MCC_TREE_RIPignore
25014MCC_CLEAR_PLAYING_NOW0: all files; 1: leave playing file
25015MCC_COPY_LISTENING_TObool bPaste
25016MCC_TREE_SET_EXPANDED0: collapsed; 1: expanded
25017MCC_RESET_VIEW_SCHEMESignore
25018MCC_TREE_ERASE_CD_DVDignore
25019MCC_UPDATE_FROM_CDPLAYER_INIignore
25020MCC_TREE_EJECTignore
25021MCC_TREE_ADD_VIRTUAL_DEVICEignore
25022MCC_TREE_RENAME_PLAYLISTint nPlaylistID
25023MCC_TWITTER_LISTENING_TOignore
25024MCC_SCROBBLE_LISTENING_TOignore

List

Range: 26,000 to 27,000

EnumCommandParameter
26000MCC_LIST_UPDATE_ORDERignore
26001MCC_LIST_SHUFFLE_ORDERignore
26002MCC_LIST_IMPORTignore
26003MCC_LIST_REMOVE_ORDERignore
26004MCC_LOCATE_FILEint nLocation (-1: on disk (internal); -2: on disk (external); 0-n: library field index)
26005MCC_LIST_MOVE_DISK_FILESignore
26006MCC_LIST_INCREMENT_SELECTIONint nDelta
26007MCC_LIST_REMOVE_DUPLICATESignore
26008MCC_LIST_AUTO_SIZE_COLUMNint nColumn, zero-based column index (-1: all)
26009MCC_LIST_CUSTOMIZE_VIEWignore
26010MCC_LIST_COPY_DISK_FILESignore
26011MCC_LIST_SET_RIP_CHECK0: uncheck, 1: check, -1: toggle
26012MCC_LIST_DOWNLOADignore
26013MCC_LIST_GET_LIST_POINTERignore
26014MCC_LOCATE_STACKignore
26015MCC_SET_AS_STACK_TOPignore
26016MCC_EXPAND_STACKignore
26017MCC_COLLAPSE_STACKignore
26018MCC_AUTOSTACK0: by name, 1: artist, album, name, 2: Artist, Album, Track # and Name
26019MCC_CHECK_STACKSignore
26020MCC_STACKint nZeroBasedSelection
26021MCC_UNSTACKignore
26022MCC_ADD_TO_STACKignore
26023MCC_PANE_RESET_SELECTIONint nPaneIndex (-1 resets all)
26024MCC_LIST_REMOVE_ALLignore
26025MCC_LIST_LOCKbool bLock (-1 toggles)
26026MCC_PANE_SET_EXPANDEDloword: nPaneIndex, hiword: 0: collapsed; 1: expanded

System

Range: 27,000 to 28,000

EnumCommandParameter
27000MCC_KEYSTROKEint nKeyCode
27001MCC_SHUTDOWNint nMode (0: shutdown; 1: sleep; 2: hibernate; 3: restart) (based on CSystemShutdown::EShutdownModes)

Playback Engine

Range: 28,000 to 29,000

EnumCommandParameter
28000MCC_PLAYBACK_ENGINE_ZOOM_INignore
28001MCC_PLAYBACK_ENGINE_ZOOM_OUTignore
28002MCC_PLAYBACK_ENGINE_UPignore
28003MCC_PLAYBACK_ENGINE_DOWNignore
28004MCC_PLAYBACK_ENGINE_LEFTignore
28005MCC_PLAYBACK_ENGINE_RIGHTignore
28006MCC_PLAYBACK_ENGINE_ENTERignore
28007MCC_PLAYBACK_ENGINE_FIRSTignore
28008MCC_PLAYBACK_ENGINE_LASTignore
28009MCC_PLAYBACK_ENGINE_NEXTignore
28010MCC_PLAYBACK_ENGINE_PREVIOUSignore
28011MCC_PLAYBACK_ENGINE_PAUSEbool bPause (-1 toggles)
28012MCC_IMAGE_PAN_AND_ZOOMbool bPanAndZoom (-1 toggles)
28013MCC_IMAGE_TOGGLE_EFFECTint nDelta
28014MCC_IMAGE_RAPID_ZOOMint nRapidZoom
28015MCC_DVD_SET_AUDIO_STREAMint nAudioStream (-1 toggles)
28016MCC_DVD_SHOW_MENUignore
28017MCC_TV_RECORDignore
28018MCC_TV_SNAPSHOTignore
28019MCC_TV_CHANGE_STANDARDignore
28020MCC_PLAYBACK_ENGINE_OSD_VIDEO_PROC_AMPint nIndex (0 for brightness, 1 for contrast, etc. -1 cycles)
28021MCC_PLAYBACK_ENGINE_SET_CUR_VIDEO_PROC_AMPint nStep (... -2, -1, 1, 2, etc. 0 is invalid and will default to 1)
28022MCC_PLAYBACK_ENGINE_SET_ASPECT_RATIO-1: cycles; 0 - 8: selects individual Aspect Ratio Modes
28023MCC_PLAYBACK_ENGINE_SCROLL_UPignore
28024MCC_PLAYBACK_ENGINE_SCROLL_DOWNignore
28025MCC_PLAYBACK_ENGINE_SCROLL_LEFTignore
28026MCC_PLAYBACK_ENGINE_SCROLL_RIGHTignore
28027MCC_TV_SET_SAVE_TIME_SHIFTINGint nSaveMode (0 - 6, -1 cycles by incrementing, -2 cycles by decrementing)
28028MCC_PLAYBACK_ENGINE_ZOOM_TO_PRESETint 0 to fit window, 1 for 100%, 2 for 200%
28029MCC_TV_SCAN_PROGRAMMING_EVENTSignored
28030MCC_TV_CHANGE_CHANNEL_KEYint nKey
28031MCC_TV_PLAY_CHANNEL_POSITIONint Playlist position
28032MCC_PLAYBACK_ENGINE_SET_SUBTITLESint nIndex (-1 toggles forward, -2 toggles backwards)
28033MCC_PLAYBACK_ENGINE_SET_AUDIO_STREAMint nIndex (-1 toggles forward, -2 toggles backwards)
28034MCC_PLAYBACK_ENGINE_SET_VIDEO_STREAMint nIndex (-1 toggles forward, -2 toggles backwards)
28035MCC_PLAYBACK_ENGINE_VIDEO_SCREEN_GRAB0: use as thumbnail; 1: save as external file

Other

Range: 30,000 to 31,000

EnumCommandParameter
30000MCC_RELOAD_MC_VIEWignore
30001MCC_CUSTOMIZE_TOOLBARignore
30002MCC_PLAY_TVint nChannelNumber, user assigned channel number
30003MCC_UPDATE_WEBPAGESignore
30004MCC_SHOW_RUNNING_MCbool bToggleVisibility
30005MCC_SHOW_MENUint nMenuID
30006MCC_TUNE_TVignore
30007MCC_PLAY_PLAYLISTint nPlaylistID
30008MCC_SENDTO_TOOL0: labeler; 1: media editor; 2: default editor; 3: ftp upload; 4: email; 5 Menalto Gallery; 6 Web Gallery
30009MCC_SHOW_VIEW_INFOnew CMCViewInfo * (for internal use only)
30010MCC_OBSOLETE_30010ignore
30011MCC_DEVICE_CHANGEDnew DEVICE_CHANGE_INFO * (for internal use only)
30012MCC_CONFIGURE_THEATER_VIEWignore
30013MCC_SET_STATUSTEXTwchar * pstrText (note: memory will be deleted by receiver)
30014MCC_UPDATE_UI_AFTER_ACTIVE_WINDOW_CHANGEignore
30015MCC_REENUM_PORTABLE_DEVICESbool bDeviceConnected
30016MCC_PLAY_ADVANCEDPLAY_COMMAND * pCommand (deleted by receiver)
30017MCC_UPDATE_STATUS_BARignore
30018MCC_REQUEST_PODCAST_UPDATEignore
30019MCC_REQUEST_PODCAST_PURGEignore
30020MCC_AUDIBLE_ACTIVATE_PCbool bActivate (true: activate, false: deactivate)
30021MCC_SHOW_INVALID_CD_VOLUME_WARNINGTCHAR cDriveLetter
30022MCC_PLAY_TV_CHANNEL_FOR_CLIENTthe MFKEY key of the TV channel to be played
30023MCC_STOP_SERVING_TV_FILECTVPlayer *: pointer to TVPlayer object serving the file

Image Tools

Range: 31,000 to 32,000

EnumCommandParameter
31000MCC_IMAGE_SET_DESKTOP_BACKignore
31001MCC_IMAGE_ROTATE_LEFTignore
31002MCC_IMAGE_ROTATE_RIGHTignore
31003MCC_IMAGE_ROTATE_UPSIDEDOWNignore
31004MCC_IMAGE_RESIZEignore
31005MCC_IMAGE_EDITignore
31006MCC_IMAGE_DELETEint nFileKey
31007MCC_IMAGE_PREVIEW_SHOWignore
31008MCC_IMAGE_PREVIEW_HIDEignore
31009MCC_IMAGE_LOCATE_ON_MAPignore

Query

Range: 32,000 to 33,000

EnumCommandParameter
32000MCC_QUERY_UI_MODEbool bInternalMode; Exit status is current UI mode: 0: Standard, 1: Mini, 2: Display, 3: Theater View, 4: Cover View

Commands

Range: 33,000 to 34,000

Note: These are used internally; standard routing.

EnumCommandParameter
33000MCC_GET_SELECTED_FILESloword: GET_SELECTION_MODES Mode, hiword: short nFlags (1: for playback)
33001MCC_PRINTVIEWignore
33002MCC_OUTPUTint nPlaylistID (-1 for active view)
33003MCC_SETFOCUSignore
33004MCC_SELECT_FILESCMediaArray *
33005MCC_DOUBLE_CLICKignore
33006MCC_PLAY_OR_SHOWignore
33007MCC_SHOW_CURRENT_FILEint nFlags (1: force, 2: select)
33008MCC_BUY_SELECTED_TRACKSint nPurchaseFlags
33009MCC_BUY_ALL_TRACKSint nPurchaseFlags
33010MCC_BUY_ALBUMint nPurchaseFlags
33011MCC_UPDATE_AFTER_PLUGIN_INSTALLEDignore
33012MCC_UPDATE_AFTER_SKIN_INSTALLEDbool bMiniView

Notifications

Range: 34,000 to 35,000

Note: These are used internally; routed to all view windows.

EnumCommandParameter
34000MCC_NOTIFY_FONT_CHANGEDignore
34001MCC_NOTIFY_VIEW_CHANGEDignore
34002MCC_NOTIFY_BEFORE_ACTIVE_VIEW_CHANGEDignore
34003MCC_NOTIFY_ACTIVE_VIEW_CHANGEDignore
34004MCC_NOTIFY_PLAYER_INFO_CHANGEDPLAYER_INFO_CHANGES nChange
34005MCC_NOTIFY_TOOLTIPS_CHANGEDbool bEnabled
34006MCC_NOTIFY_OPTIONS_CHANGEDignore
34007MCC_UPDATEint nFlags
34008MCC_NOTIFY_FOCUS_CHANGEDignore
34009MCC_SAVE_PROPERTIESignore
34010MCC_NOTIFY_UI_MODE_CHANGEDUI_MODES NewMode
34011MCC_NOTIFY_SELECTION_CHANGEDint nViewKey
34012MCC_NOTIFY_FILE_CHANGEDint nFileKey (-1: invalidates all files)
34013MCC_NOTIFY_FILE_STATUS_CHANGEDint nFileKey (-1: invalidates all files)
34014MCC_NOTIFY_FILE_ENSURE_VISIBLEint nFileKey
34015MCC_NOTIFY_GET_TAB_HWNDSignore
34016MCC_NOTIFY_BURNER_QUEUE_CHANGEDint nFlags (1: folder change)
34017MCC_NOTIFY_BURNER_PROGRESS_CHANGEDint nPercentage
34018MCC_NOTIFY_BURNER_STATUS_CHANGEDignore
34019MCC_NOTIFY_BURNER_STARTEDignore
34020MCC_NOTIFY_BURNER_FINISHED_INTERNALignore
34021MCC_NOTIFY_BURNER_FINISHEDignore
34022MCC_NOTIFY_BURNER_FAILED_INTERNALignore
34023MCC_NOTIFY_BURNER_FAILEDignore
34024MCC_NOTIFY_BURNER_CLOSE_UIignore
34025MCC_NOTIFY_BURNER_PREPARE_FOR_NEXT_COPYLPCTSTR pStatus
34026MCC_NOTIFY_RIP_STARTEDignore
34027MCC_NOTIFY_RIP_FINISHEDignore
34028MCC_NOTIFY_RIP_FAILEDLPCTSTR pError
34029MCC_NOTIFY_RIP_PROGRESS_CHANGEDignore
34030MCC_NOTIFY_RIP_QUEUE_CHANGEDignore
34031MCC_NOTIFY_DVD_RIP_STARTEDignore
34032MCC_NOTIFY_DVD_RIP_FINISHEDignore
34033MCC_NOTIFY_DVD_RIP_FAILEDint nErrorCode
34034MCC_NOTIFY_DVD_RIP_PROGRESS_CHANGEDint nPercent
34035MCC_NOTIFY_DOWNLOAD_FINISHEDint nFileKey (-1: unknown)
34036MCC_NOTIFY_DOWNLOAD_FAILEDint nFileKey (-1: unknown)
34037MCC_NOTIFY_DOWNLOAD_STATUS_CHANGEDignore
34038MCC_NOTIFY_STATUS_CHECKER_COMPLETEignore
34039MCC_NOTIFY_CURRENT_ZONE_CHANGEDignore
34040MCC_NOTIFY_DISPLAY_OWNER_CHANGEDHWND hwndOwner
34041MCC_NOTIFY_AFTER_FIRST_UPDATE_LAYOUT_WINDOWignore
34042MCC_NOTIFY_AFTER_FIRST_UPDATE_APPLY_VIEW_STATEignore
34043MCC_NOTIFY_PROCESS_TIME_REMAININGint nSecondsRemaining
34044MCC_NOTIFY_UI_UPDATE_ENABLE_DISABLE_STATESignore
34045MCC_NOTIFY_UI_SKIN_CHANGEDignore
34046MCC_UPDATE_WINDOW_LAYOUTignore
34047MCC_NOTIFY_SAVE_UI_BEFORE_SHUTDOWNignore
34048MCC_OBSOLETE_34046ignore
34049MCC_NOTIFY_PLAYLIST_FILES_CHANGEDint nPlaylistID
34050MCC_NOTIFY_PLAYLIST_INFO_CHANGEDint nPlaylistID
34051MCC_NOTIFY_PLAYLIST_ADDED_INTERNALint nPlaylistID
34052MCC_NOTIFY_PLAYLIST_ADDED_BY_USERint nPlaylistID
34053MCC_NOTIFY_PLAYLIST_REMOVEDint nPlaylistID
34054MCC_NOTIFY_PLAYLIST_COLLECTION_CHANGEDignore
34055MCC_NOTIFY_PLAYLIST_PROPERTIES_CHANGEDint nPlaylistID
34056MCC_NOTIFY_HANDHELD_UPLOAD_STARTEDint nDeviceSessionID (0 gets default)
34057MCC_NOTIFY_HANDHELD_AFTER_DEVICE_CHANGEDignore
34058MCC_NOTIFY_HANDHELD_QUEUE_CHANGEDignore
34059MCC_NOTIFY_HANDHELD_INFO_COMPLETEignore
34060MCC_NOTIFY_HANDHELD_AFTER_UPLOAD_FINISHEDignore
34061MCC_NOTIFY_COMPACT_MEMORYignore
34062MCC_NOTIFY_SEARCH_CHANGEDignore
34063MCC_NOTIFY_SEARCH_CONTEXT_CHANGEDignore
34064MCC_NOTIFY_UPDATE_SHOPPING_CARTJRStoreBase * pStore
34065MCC_NOTIFY_UPDATE_NAVIGATION_TRAILignore
34066MCC_NOTIFY_IMPORT_STARTEDbool bSilent
34067MCC_NOTIFY_IMPORT_FINISHEDbool bSilent
34068MCC_NOTIFY_ROTATED_IMAGESMFKEY nKey
34069MCC_NOTIFY_LOGIN_STATE_CHANGEbool bLoggedIn
34070MCC_NOTIFY_MYGAL_PROGRESSignore
34071MCC_NOTIFY_MYGAL_DONEignore
34072MCC_NOTIFY_PODCAST_CHANGEDignore
34073MCC_NOTIFY_PODCAST_SETTINGS_CHANGEDignore
34074MCC_NOTIFY_CONVERT_PROGRESSignore
34075MCC_NOTIFY_CONVERT_UPDATEignore
34076MCC_NOTIFY_BREADCRUMBS_CHANGEDignore
34077MCC_NOTIFY_UI_LANGUAGE_CHANGEDignore
34078MCC_NOTIFY_INSTALLED_PLUGINS_CHANGEDignore
34079MCC_NOTIFY_SUGGESTED_MUSIC_CHANGEDignore
34080MCC_NOTIFY_VIEW_SETTINGS_CHANGEDint nFlags
34081MCC_NOTIFY_BEFORE_CONFIGURE_VIEW_SETTINGSignore
34082MCC_NOTIFY_TV_RECORDING_CHANGEDignore
34083MCC_NOTIFY_TV_PROGRAMMING_GUIDE_CHANGEDignore
34084MCC_NOTIFY_TV_CHANNELS_CHANGEDignore
34085MCC_NOTIFY_TV_RECORDING_STARTEDignore
34086MCC_NOTIFY_TV_RECORDING_FINISHEDignore
34087MCC_NOTIFY_IMPORT_FILES_ADDEDignore
34088MCC_NOTIFY_PLAYBACK_OPTIONS_CHANGEDignore
34089MCC_NOTIFY_BEFORE_LAYOUT_USER_INTERFACEignore
34090MCC_NOTIFY_AFTER_LAYOUT_USER_INTERFACEignore
34091MCC_NOTIFY_ZONE_ADDED_OR_REMOVEDint nZoneID (PLAYER_ZONE_ID_UNDEFINED means multiple changes)
34092MCC_NOTIFY_ZONE_LINKED_OR_UNLINKEDignore
34093MCC_NOTIFY_LIBRARY_LOCATIONS_CHANGEDignore
34094MCC_NOTIFY_DSP_SETTINGS_CHANGED_IN_CODEint nZoneID
34095MCC_NOTIFY_OPTICAL_DISC_CHANGEDignore

Store

Range: 35,000 to 36,000

EnumCommandParameter
35000MCC_STORE_DOWNLOADbool bAllowPurchaseType
35001MCC_STORE_PURCHASEMFKEY nKey
35002MCC_STORE_SEARCH_AMAZONMFKEY nKey
35003MCC_STORE_SEARCH_AMAZON_MP3_STOREMFKEY nKey
35004MCC_STORE_TSHIRTMFKEY nKey

Specifying Zones

Media Center Core Commands are targeted to a specific playback zone by combining the command's parameter value with the zone specifier value from the Zone Specifiers table. MC zones are integer indexes, from 0 to n, where 0 is the the first zone, 1 is the second zone, and so on. Zone indexes correspond to the zone order displayed under Playing Now in the Media Center tree. MC version 16.0.118 has simplified command line specification of parameter and zone, eliminating the need for manual calculations prior to usage. The /MCC option now accepts an alternate syntax in the format of [value]:[zone index] for the parameter (see examples). The text that follows documents and describes the original (and still valid) specification, which would be used when issuing an MCC command through a mechanism other than the MC16.exe command.

Zone Specifiers
Zone Decimal Hexidecimal
Current 0 0x00000000
0 16777216 0x01000000
1 33554432 0x02000000
2 50331648 0x03000000
3 67108864 0x04000000
4 83886080 0x05000000
5 100663296 0x06000000
... ... ...
30 260046848 0x1F000000
31 520093696 0x20000000

Technically speaking, the command's parameter is OR'd with the zone specifier value, where bits 0 - 23 specify the command parameter, and bits 24 - 29 specify the zone. For command line usage, the final parameter value to pass to Media Center can be calculated as follows:

  • If the parameter is >= 0, the final value = zone specifier + parameter
  • If the parameter is <   0, the final value = zone specifier + parameter + 16777216

Examples

  • Increase volume to 25% for Zone 2 (new parameter specification available starting with MC 16.0.118)
    • MC16.exe /MCC 10020, 25:2
  • Increase volume to 25% for Zone 2
    • The MCC_VOLUME_SET command has command number 10020
    • The desired parameter value is 25
    • Zone 2 in the Zone Specifier table indicates a value of 50331648 (0x03000000 hex)
    • Zone specifier (50331648) + parameter value (25) = 50331673 (0x3000019 hex)
  • Toggle pause for Zone 3
    • The MCC_SET_PAUSE command has command number 10022
    • The desired parameter value is -1 (toggles)
    • Zone 3 in the Zone Specifier table indicates a value of 67108864 (0x04000000 hex)
    • Zone specifier (67108864) + parameter value (-1) + 16777216 = 83886079 (0x4FFFFFF hex)

Notes

  • When bit 32 is set, the zone portion is ignored, and Media Center assumes the parameter is a negative number.
  • See the C++ macros below for more information.


The look-up table below shows some pre-calculated parameter values for each of zones 0 through 5 for some typical commands. Find the desired operation, command and command number, and select the cell under the desired zone to obtain the final parameter value.

Example commands / parameter / zone look-up table
Operation MCC Command Command
Number
Parameter
Value
Zone 0 Zone 1 Zone 2 Zone 3 Zone 4 Zone 5
Play / Pause MCC_PLAY_PAUSE 10000 0 16777216 33554432 50331648 67108864 83886080 100663296
Play track from start MCC_PLAY 10001 0 16777216 33554432 50331648 67108864 83886080 100663296
Stop MCC_STOP 10002 0 16777216 33554432 50331648 67108864 83886080 100663296
Next MCC_NEXT 10003 0 16777216 33554432 50331648 67108864 83886080 100663296
Previous MCC_PREVIOUS 10004 0 16777216 33554432 50331648 67108864 83886080 100663296
Toggle shuffle mode MCC_SHUFFLE 10005 0 16777216 33554432 50331648 67108864 83886080 100663296
Shuffle - jump to PN MCC_SHUFFLE 10005 1 16777217 33554433 50331649 67108865 83886081 100663297
Shuffle - no jump to PN MCC_SHUFFLE 10005 2 16777218 33554434 50331650 67108866 83886082 100663298
Toggle continuous mode MCC_CONTINUOUS 10006 0 16777216 33554432 50331648 67108864 83886080 100663296
FF MCC_FAST_FORWARD 10008 0 16777216 33554432 50331648 67108864 83886080 100663296
Rew MCC_REWIND 10009 0 16777216 33554432 50331648 67108864 83886080 100663296
Play sequence # MCC_PLAY_CPLDB_INDEX 10015 0 16777216 33554432 50331648 67108864 83886080 100663296
Mute MCC_VOLUME_MUTE 10017 0 16777216 33554432 50331648 67108864 83886080 100663296
Vol +5 MCC_VOLUME_UP 10018 5 16777221 33554437 50331653 67108869 83886085 100663301
Vol -5 MCC_VOLUME_DOWN 10019 5 16777221 33554437 50331653 67108869 83886085 100663301
Vol 0 MCC_VOLUME_SET 10020 0 16777216 33554432 50331648 67108864 83886080 100663296
Vol 25 MCC_VOLUME_SET 10020 25 16777241 33554457 50331673 67108889 83886105 100663321
Vol 50 MCC_VOLUME_SET 10020 50 16777266 33554482 50331698 67108914 83886130 100663346
Vol 75 MCC_VOLUME_SET 10020 75 16777291 33554507 50331723 67108939 83886155 100663371
Vol 100 MCC_VOLUME_SET 10020 100 16777316 33554532 50331748 67108964 83886180 100663396
Toggle pause MCC_SET_PAUSE 10022 -1 33554431 50331647 67108863 83886079 100663295 117440511
Rating clear MCC_SET_CURRENTLY_PLAYING_RATING 10023 0 16777216 33554432 50331648 67108864 83886080 100663296
Rating 1 MCC_SET_CURRENTLY_PLAYING_RATING 10023 1 16777217 33554433 50331649 67108865 83886081 100663297
Rating 2 MCC_SET_CURRENTLY_PLAYING_RATING 10023 2 16777218 33554434 50331650 67108866 83886082 100663298
Rating 3 MCC_SET_CURRENTLY_PLAYING_RATING 10023 3 16777219 33554435 50331651 67108867 83886083 100663299
Rating 4 MCC_SET_CURRENTLY_PLAYING_RATING 10023 4 16777220 33554436 50331652 67108868 83886084 100663300
Rating 5 MCC_SET_CURRENTLY_PLAYING_RATING 10023 5 16777221 33554437 50331653 67108869 83886085 100663301

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_QUERY_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_QUERY_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_INDEX) (((ZONE_INDEX) == -1) ? ((PARAM) & 0x00FFFFFF) : ((((ZONE_INDEX) + 1) << 24) & 0xFF000000) | ((PARAM) & 0x00FFFFFF))
#define GET_MCC_PLAYBACK_PARAM(PARAM) (((PARAM) & 0x400000) ? ((PARAM) & 0xFFFFFF) - 0x1000000 : ((PARAM) & 0xFFFFFF))
#define GET_MCC_PLAYBACK_ZONE_INDEX(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))

// settings changed flags
#define MCC_SETTING_CHANGED_FLAG_UNKNOWN                    (1 << 0)
#define MCC_SETTING_CHANGED_FLAG_COLUMNS                    (1 << 1)
#define MCC_SETTING_CHANGED_FLAG_SORTING                    (1 << 2)
#define MCC_SETTING_CHANGED_FLAG_VIEW_SCHEME                (1 << 3)
#define MCC_SETTING_CHANGED_FLAG_GROUPING                   (1 << 5)
#define MCC_SETTING_CHANGED_FLAG_LIBRARY_VIEW_SETTINGS      (1 << 6)

// 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,
    UI_MODE_INTERNAL_COVER,

    // toggles, shortcuts, etc.
    UI_MODE_SHORTCUT_TEMPORARY_DISPLAY_WINDOWED = -8,
    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_COVER,
    UI_MODE_COUNT,
};

// player changes
#define PLAYER_INFO_CHANGE_ALL                               0xFFFF
#define PLAYER_INFO_CHANGE_PLAYER_STATE                      (1 << 0)
#define PLAYER_INFO_CHANGE_VOLUME                            (1 << 1)
#define PLAYER_INFO_CHANGE_FILE_INFO                         (1 << 2)
#define PLAYER_INFO_CHANGE_PLAYLIST                          (1 << 3)
#define PLAYER_INFO_CHANGE_DSP                               (1 << 4)
#define PLAYER_INFO_CHANGE_IMAGE                             (1 << 5)
#define PLAYER_INFO_CHANGE_PLAYING_FILE                      (1 << 6)
#define PLAYER_INFO_CHANGE_OUTPUT_INFO                       (1 << 7)

// 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_TELEVISION,
    SHOW_THEATER_VIEW_MODE_TELEVISION_GUIDE,
    SHOW_THEATER_VIEW_MODE_TELEVISION_RECORDINGS,
    SHOW_THEATER_VIEW_MODE_LAST_VIEWED,
};

// 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,
    GET_SELECTION_EXACT_WITH_POSITION,
};