diff --git a/Sources/232NetworkCommIF.h b/Sources/232NetworkCommIF.h index f4010ec..544942f 100644 --- a/Sources/232NetworkCommIF.h +++ b/Sources/232NetworkCommIF.h @@ -9,7 +9,7 @@ class C232NetworkCommIF : public CNetworkProtocol { public: C232NetworkCommIF(CAbstractDevice *DeviceHandle); - ~C232NetworkCommIF(); + virtual ~C232NetworkCommIF(); int SendNetworkMessage(unsigned char MessageID,unsigned char Flags,unsigned char *Data,int Size/*, unsigned char Address,unsigned char ID*/); diff --git a/Sources/AVReceiverDevice.cpp b/Sources/AVReceiverDevice.cpp index 625c92f..f5161df 100644 --- a/Sources/AVReceiverDevice.cpp +++ b/Sources/AVReceiverDevice.cpp @@ -9,9 +9,335 @@ CAVReceiverDevice::CAVReceiverDevice() connect(mReceiverSocket,SIGNAL(connected()),this,SLOT(SocketConnected())); connect(mReceiverSocket,SIGNAL(disconnected()),this,SLOT(SocketDisconnected())); connect(mReceiverSocket,SIGNAL(readyRead()),this,SLOT(SocketRX())); + + mInputsHash.insert(4,"DVD"); + mInputsHash.insert(25,"BD"); + mInputsHash.insert(5,"TV/SAT"); + mInputsHash.insert(15,"DVR/BDR"); + mInputsHash.insert(10,"VIDEO 1"); + mInputsHash.insert(14,"VIDEO 2"); + mInputsHash.insert(19,"HDMI 1"); + mInputsHash.insert(20,"HDMI 2"); + mInputsHash.insert(21,"HDMI 3"); + mInputsHash.insert(22,"HDMI 4"); + mInputsHash.insert(23,"HDMI 5"); + mInputsHash.insert(26,"INTERNET RADIO"); + mInputsHash.insert(17,"iPod/US"); + mInputsHash.insert(18,"XM RADIO"); + mInputsHash.insert(1,"CD"); + mInputsHash.insert(3,"CD-R/TAPE"); + mInputsHash.insert(2,"TUNER"); + mInputsHash.insert(0,"PHONO"); + mInputsHash.insert(12,"MULTI CH IN"); + mInputsHash.insert(33,"ADAPTER PORT"); + mInputsHash.insert(27,"SIRIUS"); + mInputsHash.insert(31,"HDMI (cyclic)"); + + + + //Listening mode SET strings + mListeningModesHash.insert(0x1,"STEREO (cyclic)"); + mListeningModesHash.insert(0x10,"STANDARD"); + mListeningModesHash.insert(0x9,"STEREO (direct set)"); + mListeningModesHash.insert(0x11,"(2ch source)"); + mListeningModesHash.insert(0x13,"PRO LOGIC2 MOVIE"); + mListeningModesHash.insert(0x18,"PRO LOGIC2x MOVIE"); + mListeningModesHash.insert(0x14,"PRO LOGIC2 MUSIC"); + mListeningModesHash.insert(0x19,"PRO LOGIC2x MUSIC"); + mListeningModesHash.insert(0x15,"PRO LOGIC2 GAME"); + mListeningModesHash.insert(0x20,"PRO LOGIC2x GAME"); + mListeningModesHash.insert(0x31,"PRO LOGIC2z HEIGHT"); + mListeningModesHash.insert(0x32,"WIDE SURROUND MOVIE"); + mListeningModesHash.insert(0x33,"WIDE SURROUND MUSIC"); + mListeningModesHash.insert(0x12,"PRO LOGIC"); + mListeningModesHash.insert(0x16,"Neo:6 CINEMA"); + mListeningModesHash.insert(0x17,"Neo:6 MUSIC"); + mListeningModesHash.insert(0x28,"XM HD SURROUND"); + mListeningModesHash.insert(0x29,"NEURAL SURROUND"); + mListeningModesHash.insert(0x37,"Neo:X CINEMA"); + mListeningModesHash.insert(0x38,"Neo:X MUSIC"); + mListeningModesHash.insert(0x39,"Neo:X GAME"); + mListeningModesHash.insert(0x40,"NEURAL SURROUND+Neo:X CINEMA"); + mListeningModesHash.insert(0x41,"NEURAL SURROUND+Neo:X MUSIC"); + mListeningModesHash.insert(0x42,"NEURAL SURROUND+Neo:X GAME"); + mListeningModesHash.insert(0x21,"(Multi ch source)"); + mListeningModesHash.insert(0x22,"(Multi ch source)+DOLBY EX"); + mListeningModesHash.insert(0x23,"(Multi ch source)+PRO LOGIC2x MOVIE"); + mListeningModesHash.insert(0x24,"(Multi ch source)+PRO LOGIC2x MUSIC"); + mListeningModesHash.insert(0x34,"(Multi-ch Source)+PRO LOGIC2z HEIGHT"); + mListeningModesHash.insert(0x35,"(Multi-ch Source)+WIDE SURROUND MOVIE"); + mListeningModesHash.insert(0x36,"(Multi-ch Source)+WIDE SURROUND MUSIC"); + mListeningModesHash.insert(0x25,"(Multi ch source)DTS-ES Neo:6"); + mListeningModesHash.insert(0x26,"(Multi ch source)DTS-ES matrix"); + mListeningModesHash.insert(0x27,"(Multi ch source)DTS-ES discrete"); + mListeningModesHash.insert(0x30,"(Multi ch source)DTS-ES 8ch discrete"); + mListeningModesHash.insert(0x43,"(Multi ch source)+Neo:X CINEMA"); + mListeningModesHash.insert(0x44,"(Multi ch source)+Neo:X MUSIC"); + mListeningModesHash.insert(0x45,"(Multi ch source)+Neo:X GAME"); + mListeningModesHash.insert(0x100,"ADVANCED SURROUND (cyclic)"); + mListeningModesHash.insert(0x101,"ACTION"); + mListeningModesHash.insert(0x103,"DRAMA"); + mListeningModesHash.insert(0x102,"SCI-FI"); + mListeningModesHash.insert(0x105,"MONO FILM"); + mListeningModesHash.insert(0x104,"ENTERTAINMENT SHOW"); + mListeningModesHash.insert(0x106,"EXPANDED THEATER"); + mListeningModesHash.insert(0x116,"TV SURROUND"); + mListeningModesHash.insert(0x118,"ADVANCED GAME"); + mListeningModesHash.insert(0x117,"SPORTS"); + mListeningModesHash.insert(0x107,"CLASSICAL"); + mListeningModesHash.insert(0x110,"ROCK/POP"); + mListeningModesHash.insert(0x109,"UNPLUGGED"); + mListeningModesHash.insert(0x112,"EXTENDED STEREO"); + mListeningModesHash.insert(0x3,"Front Stage Surround Advance Focus"); + mListeningModesHash.insert(0x4,"Front Stage Surround Advance Wide"); + mListeningModesHash.insert(0x153,"RETRIEVER AIR"); + mListeningModesHash.insert(0x113,"PHONES SURROUND"); + mListeningModesHash.insert(0x50,"THX (cyclic)"); + mListeningModesHash.insert(0x51,"PROLOGIC + THX CINEMA"); + mListeningModesHash.insert(0x52,"PL2 MOVIE + THX CINEMA"); + mListeningModesHash.insert(0x53,"Neo:6 CINEMA + THX CINEMA"); + mListeningModesHash.insert(0x54,"PL2x MOVIE + THX CINEMA"); + mListeningModesHash.insert(0x92,"PL2z HEIGHT + THX CINEMA"); + mListeningModesHash.insert(0x55,"THX SELECT2 GAMES"); + mListeningModesHash.insert(0x68,"THX CINEMA (for 2ch)"); + mListeningModesHash.insert(0x69,"THX MUSIC (for 2ch)"); + mListeningModesHash.insert(0x70,"THX GAMES (for 2ch)"); + mListeningModesHash.insert(0x71,"PL2 MUSIC + THX MUSIC"); + mListeningModesHash.insert(0x72,"PL2x MUSIC + THX MUSIC"); + mListeningModesHash.insert(0x93,"PL2z HEIGHT + THX MUSIC"); + mListeningModesHash.insert(0x73,"Neo:6 MUSIC + THX MUSIC"); + mListeningModesHash.insert(0x74,"PL2 GAME + THX GAMES"); + mListeningModesHash.insert(0x75,"PL2x GAME + THX GAMES"); + mListeningModesHash.insert(0x94,"PL2z HEIGHT + THX GAMES"); + mListeningModesHash.insert(0x76,"THX ULTRA2 GAMES"); + mListeningModesHash.insert(0x77,"PROLOGIC + THX MUSIC"); + mListeningModesHash.insert(0x78,"PROLOGIC + THX GAMES"); + mListeningModesHash.insert(0x201,"Neo:X CINEMA + THX CINEMA"); + mListeningModesHash.insert(0x202,"Neo:X MUSIC + THX MUSIC"); + mListeningModesHash.insert(0x203,"Neo:X GAME + THX GAMES"); + mListeningModesHash.insert(0x56,"THX CINEMA (for multi ch)"); + mListeningModesHash.insert(0x57,"THX SURROUND EX (for multi ch)"); + mListeningModesHash.insert(0x58,"PL2x MOVIE + THX CINEMA (for multi ch)"); + mListeningModesHash.insert(0x95,"PL2z HEIGHT + THX CINEMA (for multi ch)"); + mListeningModesHash.insert(0x59,"ES Neo:6 + THX CINEMA (for multi ch)"); + mListeningModesHash.insert(0x60,"ES MATRIX + THX CINEMA (for multi ch)"); + mListeningModesHash.insert(0x61,"ES DISCRETE + THX CINEMA (for multi ch)"); + mListeningModesHash.insert(0x67,"ES 8ch DISCRETE + THX CINEMA (for multi ch)"); + mListeningModesHash.insert(0x62,"THX SELECT2 CINEMA (for multi ch)"); + mListeningModesHash.insert(0x63,"THX SELECT2 MUSIC (for multi ch)"); + mListeningModesHash.insert(0x64,"THX SELECT2 GAMES (for multi ch)"); + mListeningModesHash.insert(0x65,"THX ULTRA2 CINEMA (for multi ch)"); + mListeningModesHash.insert(0x66,"THX ULTRA2 MUSIC (for multi ch)"); + mListeningModesHash.insert(0x79,"THX ULTRA2 GAMES (for multi ch)"); + mListeningModesHash.insert(0x80,"THX MUSIC (for multi ch)"); + mListeningModesHash.insert(0x81,"THX GAMES (for multi ch)"); + mListeningModesHash.insert(0x82,"PL2x MUSIC + THX MUSIC (for multi ch)"); + mListeningModesHash.insert(0x96,"PL2z HEIGHT + THX MUSIC (for multi ch)"); + mListeningModesHash.insert(0x83,"EX + THX GAMES (for multi ch)"); + mListeningModesHash.insert(0x97,"PL2z HEIGHT + THX GAMES (for multi ch)"); + mListeningModesHash.insert(0x84,"Neo:6 + THX MUSIC (for multi ch)"); + mListeningModesHash.insert(0x85,"Neo:6 + THX GAMES (for multi ch)"); + mListeningModesHash.insert(0x86,"ES MATRIX + THX MUSIC (for multi ch)"); + mListeningModesHash.insert(0x87,"ES MATRIX + THX GAMES (for multi ch)"); + mListeningModesHash.insert(0x88,"ES DISCRETE + THX MUSIC (for multi ch)"); + mListeningModesHash.insert(0x89,"ES DISCRETE + THX GAMES (for multi ch)"); + mListeningModesHash.insert(0x90,"ES 8CH DISCRETE + THX MUSIC (for multi ch)"); + mListeningModesHash.insert(0x91,"ES 8CH DISCRETE + THX GAMES (for multi ch)"); + mListeningModesHash.insert(0x204,"Neo:X CINEMA + THX CINEMA (for multi ch)"); + mListeningModesHash.insert(0x205,"Neo:X MUSIC + THX MUSIC (for multi ch)"); + mListeningModesHash.insert(0x206,"Neo:X GAME + THX GAMES (for multi ch)"); + mListeningModesHash.insert(0x5,"AUTO SURR/STREAM DIRECT (cyclic)"); + mListeningModesHash.insert(0x6,"AUTO SURROUND"); + mListeningModesHash.insert(0x151,"Auto Level Control (A.L.C.)"); + mListeningModesHash.insert(0x7,"DIRECT"); + mListeningModesHash.insert(0x8,"PURE DIRECT"); + mListeningModesHash.insert(0x152,"OPTIMUM SURROUND"); + + + mPlayingLMHash.insert(0x0101,"[)(]PLIIx MOVIE"); + mPlayingLMHash.insert(0x0102,"[)(]PLII MOVIE"); + mPlayingLMHash.insert(0x0103,"[)(]PLIIx MUSIC"); + mPlayingLMHash.insert(0x0104,"[)(]PLII MUSIC"); + mPlayingLMHash.insert(0x0105,"[)(]PLIIx GAME"); + mPlayingLMHash.insert(0x0106,"[)(]PLII GAME"); + mPlayingLMHash.insert(0x0107,"[)(]PROLOGIC"); + mPlayingLMHash.insert(0x0108,"Neo:6 CINEMA"); + mPlayingLMHash.insert(0x0109,"Neo:6 MUSIC"); + mPlayingLMHash.insert(0x010a,"XM HD Surround"); + mPlayingLMHash.insert(0x010b,"NEURAL SURR"); + mPlayingLMHash.insert(0x010c,"2ch Straight Decode"); + mPlayingLMHash.insert(0x010d,"[)(]PLIIz HEIGHT"); + mPlayingLMHash.insert(0x010e,"WIDE SURR MOVIE"); + mPlayingLMHash.insert(0x010f,"WIDE SURR MUSIC"); + mPlayingLMHash.insert(0x0110,"STEREO"); + mPlayingLMHash.insert(0x0111,"Neo:X CINEMA"); + mPlayingLMHash.insert(0x0112,"Neo:X MUSIC"); + mPlayingLMHash.insert(0x0113,"Neo:X GAME"); + mPlayingLMHash.insert(0x0114,"NEURAL SURROUND+Neo:X CINEMA"); + mPlayingLMHash.insert(0x0115,"NEURAL SURROUND+Neo:X MUSIC"); + mPlayingLMHash.insert(0x0116,"NEURAL SURROUND+Neo:X GAMES"); + mPlayingLMHash.insert(0x1101,"[)(]PLIIx MOVIE"); + mPlayingLMHash.insert(0x1102,"[)(]PLIIx MUSIC"); + mPlayingLMHash.insert(0x1103,"[)(]DIGITAL EX"); + mPlayingLMHash.insert(0x1104,"DTS +Neo:6 / DTS-HD +Neo:6"); + mPlayingLMHash.insert(0x1105,"ES MATRIX"); + mPlayingLMHash.insert(0x1106,"ES DISCRETE"); + mPlayingLMHash.insert(0x1107,"DTS-ES 8ch"); + mPlayingLMHash.insert(0x1108,"multi ch Straight Decode"); + mPlayingLMHash.insert(0x1109,"[)(]PLIIz HEIGHT"); + mPlayingLMHash.insert(0x110a,"WIDE SURR MOVIE"); + mPlayingLMHash.insert(0x110b,"WIDE SURR MUSIC"); + mPlayingLMHash.insert(0x110c,"Neo:X CINEMA"); + mPlayingLMHash.insert(0x110d,"Neo:X MUSIC"); + mPlayingLMHash.insert(0x110e,"Neo:X GAME"); + mPlayingLMHash.insert(0x0201,"ACTION"); + mPlayingLMHash.insert(0x0202,"DRAMA"); + mPlayingLMHash.insert(0x0203,"SCI-FI"); + mPlayingLMHash.insert(0x0204,"MONOFILM"); + mPlayingLMHash.insert(0x0205,"ENT.SHOW"); + mPlayingLMHash.insert(0x0206,"EXPANDED"); + mPlayingLMHash.insert(0x0207,"TV SURROUND"); + mPlayingLMHash.insert(0x0208,"ADVANCEDGAME"); + mPlayingLMHash.insert(0x0209,"SPORTS"); + mPlayingLMHash.insert(0x020a,"CLASSICAL"); + mPlayingLMHash.insert(0x020b,"ROCK/POP"); + mPlayingLMHash.insert(0x020c,"UNPLUGGED"); + mPlayingLMHash.insert(0x020d,"EXT.STEREO"); + mPlayingLMHash.insert(0x020e,"PHONES SURR."); + mPlayingLMHash.insert(0x020f,"FRONT STAGE SURROUND ADVANCE FOCUS"); + mPlayingLMHash.insert(0x0210,"FRONT STAGE SURROUND ADVANCE WIDE"); + mPlayingLMHash.insert(0x0211,"SOUND RETRIEVER AIR"); + mPlayingLMHash.insert(0x0301,"[)(]PLIIx MOVIE +THX"); + mPlayingLMHash.insert(0x0302,"[)(]PLII MOVIE +THX"); + mPlayingLMHash.insert(0x0303,"[)(]PL +THX CINEMA"); + mPlayingLMHash.insert(0x0304,"Neo:6 CINEMA +THX"); + mPlayingLMHash.insert(0x0305,"THX CINEMA"); + mPlayingLMHash.insert(0x0306,"[)(]PLIIx MUSIC +THX"); + mPlayingLMHash.insert(0x0307,"[)(]PLII MUSIC +THX"); + mPlayingLMHash.insert(0x0308,"[)(]PL +THX MUSIC"); + mPlayingLMHash.insert(0x0309,"Neo:6 MUSIC +THX"); + mPlayingLMHash.insert(0x030a,"THX MUSIC"); + mPlayingLMHash.insert(0x030b,"[)(]PLIIx GAME +THX"); + mPlayingLMHash.insert(0x030c,"[)(]PLII GAME +THX"); + mPlayingLMHash.insert(0x030d,"[)(]PL +THX GAMES"); + mPlayingLMHash.insert(0x030e,"THX ULTRA2 GAMES"); + mPlayingLMHash.insert(0x030f,"THX SELECT2 GAMES"); + mPlayingLMHash.insert(0x0310,"THX GAMES"); + mPlayingLMHash.insert(0x0311,"[)(]PLIIz +THX CINEMA"); + mPlayingLMHash.insert(0x0312,"[)(]PLIIz +THX MUSIC"); + mPlayingLMHash.insert(0x0313,"[)(]PLIIz +THX GAMES"); + mPlayingLMHash.insert(0x0314,"Neo:X CINEMA + THX CINEMA"); + mPlayingLMHash.insert(0x0315,"Neo:X MUSIC + THX MUSIC"); + mPlayingLMHash.insert(0x0316,"Neo:X GAMES + THX GAMES"); + mPlayingLMHash.insert(0x1301,"THX Surr EX"); + mPlayingLMHash.insert(0x1302,"Neo:6 +THX CINEMA"); + mPlayingLMHash.insert(0x1303,"ES MTRX +THX CINEMA"); + mPlayingLMHash.insert(0x1304,"ES DISC +THX CINEMA"); + mPlayingLMHash.insert(0x1305,"ES 8ch +THX CINEMA"); + mPlayingLMHash.insert(0x1306,"[)(]PLIIx MOVIE +THX"); + mPlayingLMHash.insert(0x1307,"THX ULTRA2 CINEMA"); + mPlayingLMHash.insert(0x1308,"THX SELECT2 CINEMA"); + mPlayingLMHash.insert(0x1309,"THX CINEMA"); + mPlayingLMHash.insert(0x130a,"Neo:6 +THX MUSIC"); + mPlayingLMHash.insert(0x130b,"ES MTRX +THX MUSIC"); + mPlayingLMHash.insert(0x130c,"ES DISC +THX MUSIC"); + mPlayingLMHash.insert(0x130d,"ES 8ch +THX MUSIC"); + mPlayingLMHash.insert(0x130e,"[)(]PLIIx MUSIC +THX"); + mPlayingLMHash.insert(0x130f,"THX ULTRA2 MUSIC"); + mPlayingLMHash.insert(0x1310,"THX SELECT2 MUSIC"); + mPlayingLMHash.insert(0x1311,"THX MUSIC"); + mPlayingLMHash.insert(0x1312,"Neo:6 +THX GAMES"); + mPlayingLMHash.insert(0x1313,"ES MTRX +THX GAMES"); + mPlayingLMHash.insert(0x1314,"ES DISC +THX GAMES"); + mPlayingLMHash.insert(0x1315,"ES 8ch +THX GAMES"); + mPlayingLMHash.insert(0x1316,"[)(]EX +THX GAMES"); + mPlayingLMHash.insert(0x1317,"THX ULTRA2 GAMES"); + mPlayingLMHash.insert(0x1318,"THX SELECT2 GAMES"); + mPlayingLMHash.insert(0x1319,"THX GAMES"); + mPlayingLMHash.insert(0x131a,"[)(]PLIIz +THX CINEMA"); + mPlayingLMHash.insert(0x131b,"[)(]PLIIz +THX MUSIC"); + mPlayingLMHash.insert(0x131c,"[)(]PLIIz +THX GAMES"); + mPlayingLMHash.insert(0x131d,"Neo:X CINEMA + THX CINEMA"); + mPlayingLMHash.insert(0x131e,"Neo:X MUSIC + THX MUSIC"); + mPlayingLMHash.insert(0x131f,"Neo:X GAME + THX GAMES"); + mPlayingLMHash.insert(0x0401,"STEREO"); + mPlayingLMHash.insert(0x0402,"[)(]PLII MOVIE"); + mPlayingLMHash.insert(0x0403,"[)(]PLIIx MOVIE"); + mPlayingLMHash.insert(0x0404,"Neo:6 CINEMA"); + mPlayingLMHash.insert(0x0405,"AUTO SURROUND Straight Decode"); + mPlayingLMHash.insert(0x0406,"[)(]DIGITAL EX"); + mPlayingLMHash.insert(0x0407,"[)(]PLIIx MOVIE"); + mPlayingLMHash.insert(0x0408,"DTS +Neo:6"); + mPlayingLMHash.insert(0x0409,"ES MATRIX"); + mPlayingLMHash.insert(0x040a,"ES DISCRETE"); + mPlayingLMHash.insert(0x040b,"DTS-ES 8ch"); + mPlayingLMHash.insert(0x040c,"XM HD Surround"); + mPlayingLMHash.insert(0x040d,"NEURAL SURR"); + mPlayingLMHash.insert(0x040e,"RETRIEVER AIR"); + mPlayingLMHash.insert(0x040f,"Neo:X CINEMA"); + mPlayingLMHash.insert(0x0410,"Neo:X CINEMA"); + mPlayingLMHash.insert(0x0501,"STEREO"); + mPlayingLMHash.insert(0x0502,"[)(]PLII MOVIE"); + mPlayingLMHash.insert(0x0503,"[)(]PLIIx MOVIE"); + mPlayingLMHash.insert(0x0504,"Neo:6 CINEMA"); + mPlayingLMHash.insert(0x0505,"ALC Straight Decode"); + mPlayingLMHash.insert(0x0506,"[)(]DIGITAL EX"); + mPlayingLMHash.insert(0x0507,"[)(]PLIIx MOVIE"); + mPlayingLMHash.insert(0x0508,"DTS +Neo:6"); + mPlayingLMHash.insert(0x0509,"ES MATRIX"); + mPlayingLMHash.insert(0x050a,"ES DISCRETE"); + mPlayingLMHash.insert(0x050b,"DTS-ES 8ch"); + mPlayingLMHash.insert(0x050c,"XM HD Surround"); + mPlayingLMHash.insert(0x050d,"NEURAL SURR"); + mPlayingLMHash.insert(0x050e,"RETRIEVER AIR"); + mPlayingLMHash.insert(0x050f,"Neo:X CINEMA"); + mPlayingLMHash.insert(0x0510,"Neo:X CINEMA"); + mPlayingLMHash.insert(0x0601,"STEREO"); + mPlayingLMHash.insert(0x0602,"[)(]PLII MOVIE"); + mPlayingLMHash.insert(0x0603,"[)(]PLIIx MOVIE"); + mPlayingLMHash.insert(0x0604,"Neo:6 CINEMA"); + mPlayingLMHash.insert(0x0605,"STREAM DIRECT NORMAL Straight Decode"); + mPlayingLMHash.insert(0x0606,"[)(]DIGITAL EX"); + mPlayingLMHash.insert(0x0607,"[)(]PLIIx MOVIE"); + mPlayingLMHash.insert(0x0608,"(nothing)"); + mPlayingLMHash.insert(0x0609,"ES MATRIX"); + mPlayingLMHash.insert(0x060a,"ES DISCRETE"); + mPlayingLMHash.insert(0x060b,"DTS-ES 8ch"); + mPlayingLMHash.insert(0x060c,"Neo:X CINEMA"); + mPlayingLMHash.insert(0x060d,"Neo:X CINEMA"); + mPlayingLMHash.insert(0x0701,"STREAM DIRECT PURE 2ch"); + mPlayingLMHash.insert(0x0702,"[)(]PLII MOVIE"); + mPlayingLMHash.insert(0x0703,"[)(]PLIIx MOVIE"); + mPlayingLMHash.insert(0x0704,"Neo:6 CINEMA"); + mPlayingLMHash.insert(0x0705,"STREAM DIRECT PURE Straight Decode"); + mPlayingLMHash.insert(0x0706,"[)(]DIGITAL EX"); + mPlayingLMHash.insert(0x0707,"[)(]PLIIx MOVIE"); + mPlayingLMHash.insert(0x0708,"(nothing)"); + mPlayingLMHash.insert(0x0709,"ES MATRIX"); + mPlayingLMHash.insert(0x070a,"ES DISCRETE"); + mPlayingLMHash.insert(0x070b,"DTS-ES 8ch"); + mPlayingLMHash.insert(0x070c,"Neo:X CINEMA"); + mPlayingLMHash.insert(0x070d,"Neo:X CINEMA"); + mPlayingLMHash.insert(0x0881,"OPTIMUM"); + mPlayingLMHash.insert(0x0e01,"HDMI THROUGH"); + mPlayingLMHash.insert(0x0f01,"MULTI CH IN"); + + mSpeakerStatusHash.insert(0,"SPEAKERS OFF"); + mSpeakerStatusHash.insert(1,"SPEAKER A ON"); + mSpeakerStatusHash.insert(2,"SPEAKER B ON"); + mSpeakerStatusHash.insert(3,"SPEAKERS A+B ON"); + + mHDMIOutSelectHash.insert(0,"HDMI ALL"); + mHDMIOutSelectHash.insert(1,"HDMI 1"); + mHDMIOutSelectHash.insert(2,"HDMI 2"); + mHDMIOutSelectHash.insert(3,"HDMI (cyclic)"); + } + + + CAVReceiverDevice::~CAVReceiverDevice() { mReceiverSocket->disconnectFromHost(); @@ -66,27 +392,52 @@ int CAVReceiverDevice::AnalyseRxData(QByteArray data) } else if(CurCmd.contains("MUT")) { - qDebug("AV Receiver: MUTE status received"); + CurCmd.remove("VOL"); + mReceiverMute = (bool)CurCmd.toInt(); + qDebug("AV Receiver: MUTE status received %d",mReceiverMute); } else if(CurCmd.contains("FN")) { - qDebug("AV Receiver: INPUT SRC status received"); + CurCmd.remove("FN"); + mReceiverCurInput = CurCmd.toInt(); + if(mInputsHash.contains(mReceiverCurInput)) + { + qDebug("AV Receiver: INPUT SRC status received: %s [%d]",mInputsHash.value(mReceiverCurInput).toUtf8().data(),mReceiverCurInput); + } + qDebug("AV Receiver: INPUT SRC status received (unknown hash): %d",mReceiverCurInput); } else if(CurCmd.contains("SR")) { - qDebug("AV Receiver: LISTENING MODE SET feedback received"); + CurCmd.remove("SR"); + mReceiverListeningModeSet = CurCmd.toInt(0,16); + if(mListeningModesHash.contains(mReceiverListeningModeSet)) + { + qDebug("AV Receiver: LISTENING MODE SET feedback received: %s [0x%X]",mListeningModesHash.value(mReceiverListeningModeSet).toUtf8().data(),mReceiverListeningModeSet); + } + qDebug("AV Receiver: LISTENING MODE SET feedback received (unknown hash): %d",mReceiverListeningModeSet); } else if(CurCmd.contains("LM")) { - qDebug("AV Receiver: LISTENING MODE status received"); + CurCmd.remove("LM"); + mReceiverPlayingLM = CurCmd.toInt(0,16); + if(mPlayingLMHash.contains(mReceiverPlayingLM)) + { + qDebug("AV Receiver: PLAYING LISTENING MODE status received: %s [0x%X]",mPlayingLMHash.value(mReceiverPlayingLM).toUtf8().data(),mReceiverPlayingLM); + } + qDebug("AV Receiver: PLAYING LISTENING MODE status received (unknown hash): %d",mReceiverPlayingLM); + } else if(CurCmd.contains("SPK")) { - qDebug("AV Receiver: SPEAKERS status received"); + CurCmd.remove("SPK"); + mReceiverSpkStatus = CurCmd.toInt(); + qDebug("AV Receiver: SPEAKERS status received: %s, [%d]",mSpeakerStatusHash.value(mReceiverSpkStatus).toUtf8().data(),mReceiverSpkStatus); } else if(CurCmd.contains("HO")) { - qDebug("AV Receiver: HDMI OUTPUT SELECTION status received"); + CurCmd.remove("HO"); + mReceiverHDMIOutSel = CurCmd.toInt(); + qDebug("AV Receiver: HDMI OUTPUT SELECTION status received: %s, [%d]",mHDMIOutSelectHash.value(mReceiverHDMIOutSel).toUtf8().data(),mReceiverHDMIOutSel); } else if(CurCmd.contains("EX")) { @@ -183,8 +534,11 @@ int CAVReceiverDevice::AnalyseRxData(QByteArray data) else if(CurCmd.contains("FL")) { CurCmd.remove("FL"); + int DisplayFlags = CurCmd.left(2).toInt(0,16); + CurCmd.remove(0,2); + int StrLength = CurCmd.size()/2; QString FlString = ""; - for(int i = 0; i < CurCmd.size()/2; i++) + for(int i = 0; i < StrLength; i++) { QString FlChar = CurCmd.left(2); CurCmd.remove(0,2); @@ -198,6 +552,10 @@ int CAVReceiverDevice::AnalyseRxData(QByteArray data) { qDebug("AV Receiver: INPUT NAME INFO received"); } + else + { + qDebug("AV Receiver: Unknown cmd received: %s",CurCmd.toUtf8().data()); + } } return RET_OK; diff --git a/Sources/AVReceiverDevice.h b/Sources/AVReceiverDevice.h index e8ee350..7ced328 100644 --- a/Sources/AVReceiverDevice.h +++ b/Sources/AVReceiverDevice.h @@ -2,10 +2,20 @@ #define AVRECEIVERDEVICE_H #include +#include #define RECEIVER_PORT 23 #define RECEIVER_IP_ADDRESS "192.168.0.104" +enum eReceiverSpkStatus +{ + RECEIVER_OFF_SPK_STATUS, + RECEIVER_A_ON_SPK_STATUS, + RECEIVER_B_ON_SPK_STATUS, + RECEIVER_A_B_ON_SPK_STATUS, + RECEIVER_UNKNOWN_SPK_STATUS +}; + class CAVReceiverDevice : QObject { Q_OBJECT @@ -22,6 +32,18 @@ private: int AnalyseRxData(QByteArray data); int mReceiverVolume; + bool mReceiverMute; + int mReceiverCurInput; + int mReceiverListeningModeSet; + int mReceiverPlayingLM; + int mReceiverSpkStatus; + int mReceiverHDMIOutSel; + + QHash mInputsHash; + QHash mListeningModesHash; + QHash mPlayingLMHash; + QHash mSpeakerStatusHash; + QHash mHDMIOutSelectHash; bool mIsConnected; diff --git a/Sources/DeadboltDevice.h b/Sources/DeadboltDevice.h index 7f9d6f2..feb44f0 100644 --- a/Sources/DeadboltDevice.h +++ b/Sources/DeadboltDevice.h @@ -10,7 +10,7 @@ class CDeadboltDevice: public CAbstractDevice { public: CDeadboltDevice(int Address); - ~CDeadboltDevice(); + virtual ~CDeadboltDevice(); virtual int NewDeviceFrameReceived(QByteArray Frame);