/** * Copyright (c) 2010-2016 by the respective copyright holders. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.openhab.binding.onkyo.internal.eiscp; /** * Maps a Readable string to a corresponding {@link EiscpCommandRef}. * * @author Thomas.Eichstaedt-Engelen * @author Pauli Anttila * @since 1.3.0 */ public enum EiscpCommand { // Main zone POWER_OFF("PWR00", EiscpCommandRef.POWER_OFF), POWER_ON("PWR01", EiscpCommandRef.POWER_ON), POWER_QUERY("PWRQSTN", EiscpCommandRef.POWER_QUERY), UNMUTE("AMT00", EiscpCommandRef.UNMUTE), MUTE("AMT01", EiscpCommandRef.MUTE), MUTE_QUERY("AMTQSTN", EiscpCommandRef.MUTE_QUERY), VOLUME_UP("MVLUP", EiscpCommandRef.VOLUME_UP), VOLUME_DOWN("MVLDOWN", EiscpCommandRef.VOLUME_DOWN), VOLUME_QUERY("MVLQSTN", EiscpCommandRef.VOLUME_QUERY), VOLUME_SET("MVL%02X", EiscpCommandRef.VOLUME_SET), SET_VOLUME("MVL%02X", EiscpCommandRef.VOLUME_SET), VOLUME("MVL%02X", EiscpCommandRef.VOLUME_SET), SOURCE_DVR("SLI00", EiscpCommandRef.SOURCE_DVR), SOURCE_VCR("SLI00", EiscpCommandRef.SOURCE_DVR), SOURCE_SATELLITE("SLI01", EiscpCommandRef.SOURCE_SATELLITE), SOURCE_CABLE("SLI01", EiscpCommandRef.SOURCE_SATELLITE), SOURCE_GAME("SLI02", EiscpCommandRef.SOURCE_GAME), SOURCE_GAME2("SLI04", EiscpCommandRef.SOURCE_GAME2), SOURCE_AUXILIARY("SLI03", EiscpCommandRef.SOURCE_AUX), SOURCE_AUX("SLI03", EiscpCommandRef.SOURCE_AUX), SOURCE_VIDEO5("SLI04", EiscpCommandRef.SOURCE_VIDEO5), SOURCE_AUX2("SLI04", EiscpCommandRef.SOURCE_VIDEO5), SOURCE_COMPUTER("SLI05", EiscpCommandRef.SOURCE_COMPUTER), SOURCE_PC("SLI05", EiscpCommandRef.SOURCE_COMPUTER), SOURCE_BLURAY("SLI10", EiscpCommandRef.SOURCE_BLURAY), SOURCE_DVD("SLI10", EiscpCommandRef.SOURCE_BLURAY), SOURCE_TAPE1("SLI20", EiscpCommandRef.SOURCE_TAPE1), SOURCE_TAPE2("SLI21", EiscpCommandRef.SOURCE_TAPE2), SOURCE_PHONO("SLI22", EiscpCommandRef.SOURCE_PHONO), SOURCE_CD("SLI23", EiscpCommandRef.SOURCE_CD), SOURCE_FM("SLI24", EiscpCommandRef.SOURCE_FM), SOURCE_AM("SLI25", EiscpCommandRef.SOURCE_AM), SOURCE_TUNER("SLI26", EiscpCommandRef.SOURCE_TUNER), SOURCE_MUSICSERVER("SLI27", EiscpCommandRef.SOURCE_MUSICSERVER), SOURCE_INTERETRADIO("SLI28", EiscpCommandRef.SOURCE_INTERETRADIO), SOURCE_USB("SLI29", EiscpCommandRef.SOURCE_USB), SOURCE_USB_BACK("SLI2A", EiscpCommandRef.SOURCE_USB_BACK), SOURCE_NETWORK("SLI2C", EiscpCommandRef.SOURCE_NETWORK), SOURCE_MULTICH("SLI30", EiscpCommandRef.SOURCE_MULTICH), SOURCE_SIRIUS("SLI32", EiscpCommandRef.SOURCE_SIRIUS), SOURCE_UP("SLIUP", EiscpCommandRef.SOURCE_UP), SOURCE_DOWN("SLIDOWN", EiscpCommandRef.SOURCE_DOWN), SOURCE_QUERY("SLIQSTN", EiscpCommandRef.SOURCE_QUERY), SOURCE_SET("SLI%02X", EiscpCommandRef.SOURCE_SET), SET_SOURCE("SLI%02X", EiscpCommandRef.SOURCE_SET), SOURCE("SLI%02X", EiscpCommandRef.SOURCE_SET), VIDEO_WIDE_AUTO("VWM00", EiscpCommandRef.VIDEO_WIDE_AUTO), VIDEO_WIDE_43("VWM01", EiscpCommandRef.VIDEO_WIDE_43), VIDEO_WIDE_FULL("VWM02", EiscpCommandRef.VIDEO_WIDE_FULL), VIDEO_WIDE_ZOOM("VWM03", EiscpCommandRef.VIDEO_WIDE_ZOOM), VIDEO_WIDE_WIDEZOOM("VWM04", EiscpCommandRef.VIDEO_WIDE_WIDEZOOM), VIDEO_WIDE_SMARTZOOM("VWM05", EiscpCommandRef.VIDEO_WIDE_SMARTZOOM), VIDEO_WIDE_NEXT("VWMUP", EiscpCommandRef.VIDEO_WIDE_NEXT), VIDEO_WIDE_QUERY("VWMQSTN", EiscpCommandRef.VIDEO_WIDE_QUERY), LISTEN_MODE_STEREO("LMD00", EiscpCommandRef.LISTEN_MODE_STEREO), LISTEN_MODE_ALCHANSTEREO("LMD0C", EiscpCommandRef.LISTEN_MODE_ALCHANSTEREO), LISTEN_MODE_AUDYSSEY_DSX("LMD16", EiscpCommandRef.LISTEN_MODE_AUDYSSEY_DSX), LISTEN_MODE_PLII_MOVIE_DSX("LMDA0", EiscpCommandRef.LISTEN_MODE_PLII_MOVIE_DSX), LISTEN_MODE_PLII_MUSIC_DSX("LMDA1", EiscpCommandRef.LISTEN_MODE_PLII_MUSIC_DSX), LISTEN_MODE_PLII_GAME_DSX("LMDA2", EiscpCommandRef.LISTEN_MODE_PLII_GAME_DSX), LISTEN_MODE_NEO_CINEMA_DSX("LMDA3", EiscpCommandRef.LISTEN_MODE_NEO_CINEMA_DSX), LISTEN_MODE_NEO_MUSIC_DSX("LMDA4", EiscpCommandRef.LISTEN_MODE_NEO_MUSIC_DSX), LISTEN_MODE_NEURAL_SURROUND_DSX("LMDA5", EiscpCommandRef.LISTEN_MODE_NEURAL_SURROUND_DSX), LISTEN_MODE_NEURAL_DIGITAL_DSX("LMDA6", EiscpCommandRef.LISTEN_MODE_NEURAL_DIGITAL_DSX), LISTEN_MODE_UP("LMDUP", EiscpCommandRef.LISTEN_MODE_UP), LISTEN_MODE_DOWN("LMDDOWN", EiscpCommandRef.LISTEN_MODE_DOWN), LISTEN_MODE_QUERY("LMDQSTN", EiscpCommandRef.LISTEN_MODE_QUERY), NETUSB_OP_PLAY("NTCPLAY", EiscpCommandRef.NETUSB_OP_PLAY), NETUSB_OP_STOP("NTCSTOP", EiscpCommandRef.NETUSB_OP_STOP), NETUSB_OP_PAUSE("NTCPAUSE", EiscpCommandRef.NETUSB_OP_PAUSE), NETUSB_OP_TRACKUP("NTCTRUP", EiscpCommandRef.NETUSB_OP_TRACKUP), NETUSB_OP_TRACKDWN("NTCTRDN", EiscpCommandRef.NETUSB_OP_TRACKDWN), NETUSB_OP_FF("NTCFF", EiscpCommandRef.NETUSB_OP_FF), NETUSB_OP_REW("NTCREW", EiscpCommandRef.NETUSB_OP_REW), NETUSB_OP_REPEAT("NTCREPEAT", EiscpCommandRef.NETUSB_OP_REPEAT), NETUSB_OP_RANDOM("NTCRANDOM", EiscpCommandRef.NETUSB_OP_RANDOM), NETUSB_OP_DISPLAY("NTCDISPLAY", EiscpCommandRef.NETUSB_OP_DISPLAY), NETUSB_OP_RIGHT("NTCRIGHT", EiscpCommandRef.NETUSB_OP_RIGHT), NETUSB_OP_LEFT("NTCLEFT", EiscpCommandRef.NETUSB_OP_LEFT), NETUSB_OP_UP("NTCUP", EiscpCommandRef.NETUSB_OP_UP), NETUSB_OP_DOWN("NTCDOWN", EiscpCommandRef.NETUSB_OP_DOWN), NETUSB_OP_SELECT("NTCSELECT", EiscpCommandRef.NETUSB_OP_SELECT), NETUSB_OP_1("NTC1", EiscpCommandRef.NETUSB_OP_1), NETUSB_OP_2("NTC2", EiscpCommandRef.NETUSB_OP_2), NETUSB_OP_3("NTC3", EiscpCommandRef.NETUSB_OP_3), NETUSB_OP_4("NTC4", EiscpCommandRef.NETUSB_OP_4), NETUSB_OP_5("NTC5", EiscpCommandRef.NETUSB_OP_5), NETUSB_OP_6("NTC6", EiscpCommandRef.NETUSB_OP_6), NETUSB_OP_7("NTC7", EiscpCommandRef.NETUSB_OP_7), NETUSB_OP_8("NTC8", EiscpCommandRef.NETUSB_OP_8), NETUSB_OP_9("NTC9", EiscpCommandRef.NETUSB_OP_9), NETUSB_OP_0("NTC0", EiscpCommandRef.NETUSB_OP_0), NETUSB_OP_DELETE("NTCDELETE", EiscpCommandRef.NETUSB_OP_DELETE), NETUSB_OP_CAPS("NTCCAPS", EiscpCommandRef.NETUSB_OP_CAPS), NETUSB_OP_SETUP("NTCSETUP", EiscpCommandRef.NETUSB_OP_SETUP), NETUSB_OP_RETURN("NTCRETURN", EiscpCommandRef.NETUSB_OP_RETURN), NETUSB_OP_CHANUP("NTCCHUP", EiscpCommandRef.NETUSB_OP_CHANUP), NETUSB_OP_CHANDWN("NTCCHDN", EiscpCommandRef.NETUSB_OP_CHANDWN), NETUSB_OP_MENU("NTCMENU", EiscpCommandRef.NETUSB_OP_MENU), NETUSB_OP_TOPMENU("NTCTOP", EiscpCommandRef.NETUSB_OP_TOPMENU), NETUSB_SONG_ARTIST_QUERY("NATQSTN", EiscpCommandRef.NETUSB_SONG_ARTIST_QUERY), NETUSB_SONG_ALBUM_QUERY("NALQSTN", EiscpCommandRef.NETUSB_SONG_ALBUM_QUERY), NETUSB_SONG_TITLE_QUERY("NTIQSTN", EiscpCommandRef.NETUSB_SONG_TITLE_QUERY), NETUSB_SONG_ELAPSEDTIME_QUERY("NTMQSTN", EiscpCommandRef.NETUSB_SONG_ELAPSEDTIME_QUERY), NETUSB_SONG_TRACK_QUERY("NTRQSTN", EiscpCommandRef.NETUSB_SONG_TRACK_QUERY), NETUSB_PLAY_STATUS_QUERY("NSTQSTN", EiscpCommandRef.NETUSB_PLAY_STATUS_QUERY), /* * Zone 2 */ ZONE2_POWER_OFF("ZPW00", EiscpCommandRef.ZONE2_POWER_SBY), ZONE2_POWER_ON("ZPW01", EiscpCommandRef.ZONE2_POWER_ON), ZONE2_POWER_QUERY("ZPWQSTN", EiscpCommandRef.POWER_QUERY), ZONE2_UNMUTE("ZMT00", EiscpCommandRef.ZONE2_UNMUTE), ZONE2_MUTE("ZMT01", EiscpCommandRef.ZONE2_MUTE), ZONE2_MUTE_QUERY("ZMTQSTN", EiscpCommandRef.ZONE2_MUTE_QUERY), ZONE2_VOLUME_UP("ZVLUP", EiscpCommandRef.ZONE2_VOLUME_UP), ZONE2_VOLUME_DOWN("ZVLDOWN", EiscpCommandRef.ZONE2_VOLUME_DOWN), ZONE2_VOLUME_QUERY("ZVLQSTN", EiscpCommandRef.ZONE2_VOLUME_QUERY), ZONE2_VOLUME_SET("ZVL%02X", EiscpCommandRef.ZONE2_VOLUME_SET), ZONE2_SET_VOLUME("ZVL%02X", EiscpCommandRef.ZONE2_VOLUME_SET), ZONE2_VOLUME("ZVL%02X", EiscpCommandRef.ZONE2_VOLUME_SET), ZONE2_SOURCE_DVR("SLZ00", EiscpCommandRef.ZONE2_SOURCE_DVR), ZONE2_SOURCE_VCR("SLZ00", EiscpCommandRef.ZONE2_SOURCE_DVR), ZONE2_SOURCE_SATELLITE("SLZ01", EiscpCommandRef.ZONE2_SOURCE_SATELLITE), ZONE2_SOURCE_CABLE("SLZ01", EiscpCommandRef.ZONE2_SOURCE_SATELLITE), ZONE2_SOURCE_GAME("SLZ02", EiscpCommandRef.ZONE2_SOURCE_GAME), ZONE2_SOURCE_AUXILIARY("SLZ03", EiscpCommandRef.ZONE2_SOURCE_AUX), ZONE2_SOURCE_AUX("SLZ03", EiscpCommandRef.ZONE2_SOURCE_AUX), ZONE2_SOURCE_VIDEO5("SLZ04", EiscpCommandRef.ZONE2_SOURCE_VIDEO5), ZONE2_SOURCE_AUX2("SLZ04", EiscpCommandRef.ZONE2_SOURCE_VIDEO5), ZONE2_SOURCE_COMPUTER("SLZ05", EiscpCommandRef.ZONE2_SOURCE_COMPUTER), ZONE2_SOURCE_PC("SLZ05", EiscpCommandRef.ZONE2_SOURCE_COMPUTER), ZONE2_SOURCE_BLURAY("SLZ10", EiscpCommandRef.ZONE2_SOURCE_BLURAY), ZONE2_SOURCE_DVD("SLZ10", EiscpCommandRef.ZONE2_SOURCE_BLURAY), ZONE2_SOURCE_TAPE1("SLZ20", EiscpCommandRef.ZONE2_SOURCE_TAPE1), ZONE2_SOURCE_TAPE2("SLZ21", EiscpCommandRef.ZONE2_SOURCE_TAPE2), ZONE2_SOURCE_PHONO("SLZ22", EiscpCommandRef.ZONE2_SOURCE_PHONO), ZONE2_SOURCE_CD("SLZ23", EiscpCommandRef.ZONE2_SOURCE_CD), ZONE2_SOURCE_FM("SLZ24", EiscpCommandRef.ZONE2_SOURCE_FM), ZONE2_SOURCE_AM("SLZ25", EiscpCommandRef.ZONE2_SOURCE_AM), ZONE2_SOURCE_TUNER("SLZ26", EiscpCommandRef.ZONE2_SOURCE_TUNER), ZONE2_SOURCE_MUSICSERVER("SLZ27", EiscpCommandRef.ZONE2_SOURCE_MUSICSERVER), ZONE2_SOURCE_INTERETRADIO("SLZ28", EiscpCommandRef.ZONE2_SOURCE_INTERETRADIO), ZONE2_SOURCE_USB("SLZ29", EiscpCommandRef.ZONE2_SOURCE_USB), ZONE2_SOURCE_USB_BACK("SLZ2A", EiscpCommandRef.ZONE2_SOURCE_USB_BACK), ZONE2_SOURCE_NETWORK("SLZ2C", EiscpCommandRef.ZONE2_SOURCE_NETWORK), ZONE2_SOURCE_MULTICH("SLZ30", EiscpCommandRef.ZONE2_SOURCE_MULTICH), ZONE2_SOURCE_SIRIUS("SLZ32", EiscpCommandRef.ZONE2_SOURCE_SIRIUS), ZONE2_SOURCE_UP("SLZUP", EiscpCommandRef.ZONE2_SOURCE_UP), ZONE2_SOURCE_DOWN("SLZDOWN", EiscpCommandRef.ZONE2_SOURCE_DOWN), ZONE2_SOURCE_QUERY("SLZQSTN", EiscpCommandRef.ZONE2_SOURCE_QUERY), ZONE2_SOURCE_SET("SLZ%02X", EiscpCommandRef.ZONE2_SOURCE_SET), ZONE2_SET_SOURCE("SLZ%02X", EiscpCommandRef.ZONE2_SOURCE_SET), ZONE2_SOURCE("SLZ%02X", EiscpCommandRef.ZONE2_SOURCE_SET), /* * Zone 3 */ ZONE3_POWER_OFF("PW300", EiscpCommandRef.ZONE3_POWER_SBY), ZONE3_POWER_ON("PW301", EiscpCommandRef.ZONE3_POWER_ON), ZONE3_POWER_QUERY("PW3QSTN", EiscpCommandRef.POWER_QUERY), ZONE3_UNMUTE("MT300", EiscpCommandRef.ZONE3_UNMUTE), ZONE3_MUTE("MT301", EiscpCommandRef.ZONE3_MUTE), ZONE3_MUTE_QUERY("MT3QSTN", EiscpCommandRef.ZONE3_MUTE_QUERY), ZONE3_VOLUME_UP("VL3UP", EiscpCommandRef.ZONE3_VOLUME_UP), ZONE3_VOLUME_DOWN("VL3DOWN", EiscpCommandRef.ZONE3_VOLUME_DOWN), ZONE3_VOLUME_QUERY("VL3QSTN", EiscpCommandRef.ZONE3_VOLUME_QUERY), ZONE3_VOLUME_SET("VL3%02X", EiscpCommandRef.ZONE3_VOLUME_SET), ZONE3_SET_VOLUME("VL3%02X", EiscpCommandRef.ZONE3_VOLUME_SET), ZONE3_VOLUME("VL3%02X", EiscpCommandRef.ZONE3_VOLUME_SET), ZONE3_SOURCE_DVR("SL300", EiscpCommandRef.ZONE3_SOURCE_DVR), ZONE3_SOURCE_VCR("SL300", EiscpCommandRef.ZONE3_SOURCE_DVR), ZONE3_SOURCE_SATELLITE("SL301", EiscpCommandRef.ZONE3_SOURCE_SATELLITE), ZONE3_SOURCE_CABLE("SL301", EiscpCommandRef.ZONE3_SOURCE_SATELLITE), ZONE3_SOURCE_GAME("SL302", EiscpCommandRef.ZONE3_SOURCE_GAME), ZONE3_SOURCE_AUXILIARY("SL303", EiscpCommandRef.ZONE3_SOURCE_AUX), ZONE3_SOURCE_AUX("SL303", EiscpCommandRef.ZONE3_SOURCE_AUX), ZONE3_SOURCE_VIDEO5("SL304", EiscpCommandRef.ZONE3_SOURCE_VIDEO5), ZONE3_SOURCE_AUX2("SL304", EiscpCommandRef.ZONE3_SOURCE_VIDEO5), ZONE3_SOURCE_COMPUTER("SL305", EiscpCommandRef.ZONE3_SOURCE_COMPUTER), ZONE3_SOURCE_PC("SL305", EiscpCommandRef.ZONE3_SOURCE_COMPUTER), ZONE3_SOURCE_BLURAY("SL310", EiscpCommandRef.ZONE3_SOURCE_BLURAY), ZONE3_SOURCE_DVD("SL310", EiscpCommandRef.ZONE3_SOURCE_BLURAY), ZONE3_SOURCE_TAPE1("SL320", EiscpCommandRef.ZONE3_SOURCE_TAPE1), ZONE3_SOURCE_TAPE2("SL321", EiscpCommandRef.ZONE3_SOURCE_TAPE2), ZONE3_SOURCE_PHONO("SL322", EiscpCommandRef.ZONE3_SOURCE_PHONO), ZONE3_SOURCE_CD("SL323", EiscpCommandRef.ZONE3_SOURCE_CD), ZONE3_SOURCE_FM("SL324", EiscpCommandRef.ZONE3_SOURCE_FM), ZONE3_SOURCE_AM("SL325", EiscpCommandRef.ZONE3_SOURCE_AM), ZONE3_SOURCE_TUNER("SL326", EiscpCommandRef.ZONE3_SOURCE_TUNER), ZONE3_SOURCE_MUSICSERVER("SL327", EiscpCommandRef.ZONE3_SOURCE_MUSICSERVER), ZONE3_SOURCE_INTERETRADIO("SL328", EiscpCommandRef.ZONE3_SOURCE_INTERETRADIO), ZONE3_SOURCE_USB("SL329", EiscpCommandRef.ZONE3_SOURCE_USB), ZONE3_SOURCE_USB_BACK("SL32A", EiscpCommandRef.ZONE3_SOURCE_USB_BACK), ZONE3_SOURCE_NETWORK("SL32C", EiscpCommandRef.ZONE3_SOURCE_NETWORK), ZONE3_SOURCE_MULTICH("SL330", EiscpCommandRef.ZONE3_SOURCE_MULTICH), ZONE3_SOURCE_SIRIUS("SL332", EiscpCommandRef.ZONE3_SOURCE_SIRIUS), ZONE3_SOURCE_UP("SL3UP", EiscpCommandRef.ZONE3_SOURCE_UP), ZONE3_SOURCE_DOWN("SL3DOWN", EiscpCommandRef.ZONE3_SOURCE_DOWN), ZONE3_SOURCE_QUERY("SL3QSTN", EiscpCommandRef.ZONE3_SOURCE_QUERY), ZONE3_SOURCE_SET("SL3%02X", EiscpCommandRef.ZONE3_SOURCE_SET), ZONE3_SET_SOURCE("SL3%02X", EiscpCommandRef.ZONE3_SOURCE_SET), ZONE3_SOURCE("SL3%02X", EiscpCommandRef.ZONE3_SOURCE_SET),; private String command; private EiscpCommandRef commandRef; private EiscpCommand(String command, EiscpCommandRef commandRef) { this.command = command; this.commandRef = commandRef; } /** * @return the iscp command string (example 'SLI10') */ public String getCommand() { return command; } /** * @return the iscp command constant reference */ public EiscpCommandRef getCommandRef() { return commandRef; } /** * @param command the command to find a matching command name for. * @return the commandName that is associated with the passed command. */ public static EiscpCommand getCommandByCommandStr(String command) { for (EiscpCommand candidate : values()) { if (candidate.getCommand().equals(command)) { return candidate; } } throw new IllegalStateException("There is no matching commandName for command '" + command + "'"); } /** * @param commandRef the eISCP Command to find a matching command name. * @return the commandName that is associated with the passed eISCP command. */ public static EiscpCommand getCommandByCommandRef(int commandRef) { for (EiscpCommand candidate : values()) { if (candidate.getCommandRef().getCommand() == commandRef) { return candidate; } } throw new IllegalStateException("There is no matching commandName for commandRef '" + commandRef + "'"); } }