Adding per-keyset editable data
[pierogi] / keysets / panasonic.cpp
index 5ca58b0..21647cc 100644 (file)
@@ -1,6 +1,7 @@
 #include "panasonic.h"
 #include "protocols/necprotocol.h"
 #include "protocols/kaseikyoprotocol.h"
+#include "protocols/panasonicoldprotocol.h"
 
 
 PanasonicCarAudio::PanasonicCarAudio(
@@ -134,6 +135,7 @@ PanasonicTV1::PanasonicTV1(
       Panasonic_Make,
       index)
 {
+  addControlledDevice(Panasonic_Make, "TX-32PD50", TV_Device);
 }
 
 
@@ -316,6 +318,87 @@ void PanasonicTV1b::populateProtocol(
 }
 
 
+PanasonicTV2::PanasonicTV2(
+  unsigned int index)
+  : PIRKeysetMetaData(
+      "TV Keyset 2",
+      Panasonic_Make,
+      index)
+{
+}
+
+
+void PanasonicTV2::populateProtocol(
+  QObject *guiObject)
+{
+  if (threadableProtocol)
+  {
+    // Keyset already populated.
+    return;
+  }
+
+  threadableProtocol = new PanasonicOldProtocol(guiObject, index);
+
+  addPanOldKey("Mute", Mute_Key, 0x00, 0x00);
+  addPanOldKey("R-Tune", Unmapped_Key, 0x00, 0x0A);
+  addPanOldKey("Sleep", Sleep_Key, 0x00, 0x0B);
+  addPanOldKey("TV/Video", Input_Key, 0x00, 0x0D);
+  addPanOldKey("Recall", PrevChannel_Key, 0x00, 0x0F);
+
+  addPanOldKey("ONE", One_Key, 0x00, 0x10);
+  addPanOldKey("TWO", Two_Key, 0x00, 0x11);
+  addPanOldKey("THREE", Three_Key, 0x00, 0x12);
+  addPanOldKey("FOUR", Four_Key, 0x00, 0x13);
+  addPanOldKey("FIVE", Five_Key, 0x00, 0x14);
+  addPanOldKey("SIX", Six_Key, 0x00, 0x15);
+  addPanOldKey("SEVEN", Seven_Key, 0x00, 0x16);
+  addPanOldKey("EIGHT", Eight_Key, 0x00, 0x17);
+  addPanOldKey("NINE", Nine_Key, 0x00, 0x18);
+  addPanOldKey("ZERO", Zero_Key, 0x00, 0x19);
+
+  addPanOldKey("POWER", Power_Key, 0x00, 0x20);
+  addPanOldKey("CHANNEL_UP", ChannelUp_Key, 0x00, 0x22); // "NEXT"
+  addPanOldKey("CHANNEL_DOWN", ChannelDown_Key, 0x00, 0x23); // "PREV"
+  addPanOldKey("VOLUME_UP", VolumeUp_Key, 0x00, 0x24);
+  addPanOldKey("VOLUME_DOWN", VolumeDown_Key, 0x00, 0x25);
+}
+
+
+PanasonicTV2a::PanasonicTV2a(
+  unsigned int index)
+  : PanasonicTV2(index)
+{
+  setKeysetName("TV Keyset 2a");
+}
+
+
+void PanasonicTV2a::populateProtocol(
+  QObject *guiObject)
+{
+  if (threadableProtocol)
+  {
+    // Keyset already populated.
+    return;
+  }
+
+  PanasonicTV2::populateProtocol(guiObject);
+
+  addPanOldKey("BAL_LEFT", BalanceLeft_Key, 0x00, 0x24);
+  addPanOldKey("BAL_RIGHT", BalanceRight_Key, 0x00, 0x25);
+  addPanOldKey("VOL_UP", VolumeUp_Key, 0x00, 0x01);
+  addPanOldKey("VOL_DOWN", VolumeDown_Key, 0x00, 0x0D);
+  addPanOldKey("BWD", Rewind_Key, 0x00, 0x3B);
+  addPanOldKey("FWD", FastForward_Key, 0x00, 0x3C);
+  addPanOldKey("STOP", Stop_Key, 0x00, 0x1B);
+  addPanOldKey("PAUSE", Pause_Key, 0x00, 0x2A);
+  addPanOldKey("PLAYLIST_CLEAR", Unmapped_Key, 0x00, 0x1A);
+  addPanOldKey("PLAYLIST_ADD", Unmapped_Key, 0x00, 0x36);
+  addPanOldKey("PLAY", Play_Key, 0x00, 0x3A);
+  addPanOldKey("MUTE", Mute_Key, 0x00, 0x0B);
+  addPanOldKey("QUIT", Unmapped_Key, 0x00, 0x20);
+}
+
+
 PanasonicVCR1::PanasonicVCR1(
   unsigned int index)
   : PIRKeysetMetaData(
@@ -365,10 +448,10 @@ void PanasonicVCR1::populateProtocol(
   addKaseikyoKey("INFO", Info_Key, 0x009, 0x39);
   addKaseikyoKey("-/--", DoubleDigit_Key, 0x009, 0x3B);
   addKaseikyoKey("POWER", Power_Key, 0x009, 0x3D);
-  addKaseikyoKey("INDEX", Unmapped_Key, 0x009, 0x40);
+  addKaseikyoKey("INDEX", IndexSearch_Key, 0x009, 0x40);
   addKaseikyoKey("time_search", Unmapped_Key, 0x009, 0x44);
-  addKaseikyoKey("INDEXL", Unmapped_Key, 0x009, 0x49);
-  addKaseikyoKey("INDEXR", Unmapped_Key, 0x009, 0x4A);
+  addKaseikyoKey("INDEXL", Previous_Key, 0x009, 0x49);
+  addKaseikyoKey("INDEXR", Next_Key, 0x009, 0x4A);
   addKaseikyoKey("mem_rep", Unmapped_Key, 0x009, 0x53);
   addKaseikyoKey("COUNTER_RESET", Unmapped_Key, 0x009, 0x54);
   addKaseikyoKey("TAPE_REMAIN", Unmapped_Key, 0x009, 0x55);
@@ -379,7 +462,7 @@ void PanasonicVCR1::populateProtocol(
   addKaseikyoKey("TRACKING_AUTO", AutoTracking_Key, 0x009, 0xB0);
   addKaseikyoKey("TRACKING_PLUS", TrackingPlus_Key, 0x009, 0xB1);
   addKaseikyoKey("TRACKING_MINUS", TrackingMinus_Key, 0x009, 0xB2);
-  addKaseikyoKey("TIMERREC", Timer_Key, 0x009, 0xB4);
+  addKaseikyoKey("TIMERREC", RecordTimed_Key, 0x009, 0xB4);
   addKaseikyoKey("AV", Unmapped_Key, 0x009, 0xC0);
   addKaseikyoKey("DIRECT_TV_REC", Unmapped_Key, 0x009, 0xC2);
   addKaseikyoKey("mesecam", Unmapped_Key, 0x009, 0xC9);
@@ -398,7 +481,7 @@ void PanasonicVCR1::populateProtocol(
   addKaseikyoKey("rotatedown", Unmapped_Key, 0x019, 0x03);
   addKaseikyoKey("set", Unmapped_Key, 0x019, 0x04);
   addKaseikyoKey("clear", Unmapped_Key, 0x019, 0x05);
-  addKaseikyoKey("VPS/PDC", Unmapped_Key, 0x019, 0x06);
+  addKaseikyoKey("VPS/PDC", RecordPDC_Key, 0x019, 0x06);
   addKaseikyoKey("OffTimer", Sleep_Key, 0x019, 0x08);
   addKaseikyoKey("CANCEL", Clear_Key, 0x019, 0x09);
   addKaseikyoKey("SPEED", VHSSpeed_Key, 0x019, 0x0A);
@@ -406,7 +489,7 @@ void PanasonicVCR1::populateProtocol(
   addKaseikyoKey("RADIO_TUNE", Unmapped_Key, 0x019, 0x38);
   addKaseikyoKey("MENU", Menu_Key, 0x019, 0x56);
   addKaseikyoKey("OK", Select_Key, 0x019, 0x58);
-  addKaseikyoKey("SHOWVIEW", Unmapped_Key, 0x019, 0x5D);
+  addKaseikyoKey("SHOWVIEW", Unmapped_Key, 0x019, 0x5D); // vhsplus+, etc.
   addKaseikyoKey("DISPLAY", Unmapped_Key, 0x019, 0x5F);
   addKaseikyoKey("EXIT", Exit_Key, 0x019, 0x66);
   addKaseikyoKey("CHECK+", Unmapped_Key, 0x019, 0x90);
@@ -452,7 +535,7 @@ void PanasonicVCR1a::populateProtocol(
 
   addKaseikyoKey("OSD", Info_Key, 0x009, 0x57);
   addKaseikyoKey("AV", Input_Key, 0x009, 0xC0);
-  addKaseikyoKey("DISPLAY", Info_Key, 0x019, 0x5F);
+  addKaseikyoKey("DISPLAY", Unmapped_Key, 0x019, 0x5F);
 }
 
 
@@ -507,6 +590,73 @@ void PanasonicVCR1c::populateProtocol(
 }
 
 
+PanasonicVCR2::PanasonicVCR2(
+  unsigned int index)
+  : PIRKeysetMetaData(
+      "VCR Keyset 2",
+      Panasonic_Make,
+      index)
+{
+}
+
+
+void PanasonicVCR2::populateProtocol(
+  QObject *guiObject)
+{
+  if (threadableProtocol)
+  {
+    // Keyset already populated.
+    return;
+  }
+
+  threadableProtocol = new PanasonicOldProtocol(guiObject, index);
+
+  addPanOldKey("STOP", Stop_Key, 0x02, 0x00);
+  addPanOldKey("REW", Rewind_Key, 0x02, 0x02);
+  addPanOldKey("FF", FastForward_Key, 0x02, 0x03);
+  addPanOldKey("PAUSE", Pause_Key, 0x02, 0x06);
+  addPanOldKey("REC", Record_Key, 0x02, 0x08);
+  addPanOldKey("PLAY", Play_Key, 0x02, 0x0A);
+  addPanOldKey("REV_PLAY", Unmapped_Key, 0x02, 0x0B);
+  addPanOldKey("F.ADV", StepForward_Key, 0x02, 0x0C);
+  addPanOldKey("x2", PlayX2_Key, 0x02, 0x0E);
+  addPanOldKey("SLOW", Slow_Key, 0x02, 0x0F);
+  addPanOldKey("1", One_Key, 0x02, 0x10);
+  addPanOldKey("2", Two_Key, 0x02, 0x11);
+  addPanOldKey("3", Three_Key, 0x02, 0x12);
+  addPanOldKey("4", Four_Key, 0x02, 0x13);
+  addPanOldKey("5", Five_Key, 0x02, 0x14);
+  addPanOldKey("6", Six_Key, 0x02, 0x15);
+  addPanOldKey("7", Seven_Key, 0x02, 0x16);
+  addPanOldKey("8", Eight_Key, 0x02, 0x17);
+  addPanOldKey("9", Nine_Key, 0x02, 0x18);
+  addPanOldKey("0", Zero_Key, 0x02, 0x19);
+  addPanOldKey("POWER", Power_Key, 0x02, 0x20); // "vtr"
+  addPanOldKey("VOL+", VolumeUp_Key, 0x02, 0x22);
+  addPanOldKey("VOL-", VolumeDown_Key, 0x02, 0x23);
+  addPanOldKey("-/--", DoubleDigit_Key, 0x02, 0x24);
+  addPanOldKey("VTR/TV", Input_Key, 0x02, 0x2A);
+  addPanOldKey("slow+", SlowPlus_Key, 0x02, 0x2E);
+  addPanOldKey("slow-", SlowMinus_Key, 0x02, 0x2F);
+  addPanOldKey("MEMORY_SEARCH", Memory_Key, 0x02, 0x32);
+  addPanOldKey("RESET_INDEX", Reset_Key, 0x02, 0x33);
+  addPanOldKey("INTRO_SCAN", Unmapped_Key, 0x02, 0x34);
+  addPanOldKey("timer_rec", RecordTimed_Key, 0x02, 0x36);
+  addPanOldKey("AUDIO-SELECT", Audio_Key, 0x02, 0x3D);
+
+  addPanOldKey("VPS", RecordPDC_Key, 0x03, 0x06);
+  addPanOldKey("prog", Program_Key, 0x03, 0x2C);
+  addPanOldKey("next", Next_Key, 0x03, 0x3A);
+
+  addPanOldKey("FSTORE", Unmapped_Key, 0x19, 0x10);
+  addPanOldKey("STROBE", Unmapped_Key, 0x19, 0x11);
+  addPanOldKey("CLEAR", Unmapped_Key, 0x19, 0x12);
+  addPanOldKey("GEFFECT", Unmapped_Key, 0x19, 0x17);
+  addPanOldKey("MINUS", ChannelDown_Key, 0x19, 0x19); //?
+  addPanOldKey("PLUS", ChannelUp_Key, 0x19, 0x24); //?
+}
+
+
 PanasonicDVD1::PanasonicDVD1(
   unsigned int index)
   : PIRKeysetMetaData(
@@ -698,7 +848,7 @@ void PanasonicAudio1::populateProtocol(
   addKaseikyoKey("vol+", VolumeUp_Key, 0xC2A, 0xB0);
   addKaseikyoKey("vol-", VolumeDown_Key, 0xC2A, 0xB1);
   addKaseikyoKey("cd", CDInput_Key, 0xC2A, 0xB6);
-  addKaseikyoKey("tuner-band", TunerBand_Key, 0xC2A, 0xB8);
+  addKaseikyoKey("tuner-band", TunerInput_Key, 0xC2A, 0xB8);
   addKaseikyoKey("sleep", Sleep_Key, 0xC2A, 0xBC);
   addKaseikyoKey("power", Power_Key, 0xC2A, 0xBF);
 
@@ -746,39 +896,131 @@ void PanasonicAudio2::populateProtocol(
 
   setPreData(0x2002, 16);
 
-  addKaseikyoKey("Play/Pause", Play_Key, 0x1CA, 0x0A);
-  addKaseikyoKey("Play/Pause", Pause_Key, 0x1CA, 0x0A);
-  addKaseikyoKey("Stop", Stop_Key, 0x1CA, 0x0A);
-  addKaseikyoKey("Play_Reverse", Unmapped_Key, 0x1CA, 0x06);
-  addKaseikyoKey("Back", Previous_Key, 0x1CA, 0x49);
-  addKaseikyoKey("Forward", Next_Key, 0x1CA, 0x4A);
-  addKaseikyoKey("Mute", Mute_Key, 0x00A, 0x32);
-  addKaseikyoKey("Volume_Down", VolumeDown_Key, 0x00A, 0x21);
   addKaseikyoKey("Volume_Up", VolumeUp_Key, 0x00A, 0x20);
-  addKaseikyoKey("Power", Power_Key, 0x1CA, 0x3D);
-  addKaseikyoKey("Sleep", Sleep_Key, 0x1CA, 0x96);
-  addKaseikyoKey("Eq", Unmapped_Key, 0x10A, 0x83);
+  addKaseikyoKey("Volume_Down", VolumeDown_Key, 0x00A, 0x21);
+  addKaseikyoKey("Mute", Mute_Key, 0x00A, 0x32);
+  addKaseikyoKey("INPUT:AUX", AuxInput_Key, 0x00A, 0x9A);
   addKaseikyoKey("Super_Woofer", Unmapped_Key, 0x00A, 0xC2);
+
+  addKaseikyoKey("tuner", TunerInput_Key, 0x04A, 0xA4);
+
+  addKaseikyoKey("tape", TapeInput_Key, 0x08A, 0x96);
+  addKaseikyoKey("INPUT: TAPE Play", Unmapped_Key, 0x08A, 0x9E);
+
+  addKaseikyoKey("repeat", Repeat_Key, 0x0AA, 0x47);
+  addKaseikyoKey("random", Random_Key, 0x0AA, 0x4D);
+  addKaseikyoKey("program", Program_Key, 0x0AA, 0x8A);
+  addKaseikyoKey("cd", CDInput_Key, 0x00A, 0x94);
+  addKaseikyoKey("aux", AuxInput_Key, 0x00A, 0x9A);
+  addKaseikyoKey("cancel", Clear_Key, 0x0AA, 0xA3);
+  addKaseikyoKey("Disc", NextDisc_Key, 0x0AA, 0xA4);
+
+  addKaseikyoKey("Eq", Unmapped_Key, 0x10A, 0x83); // "Preset EQ"
+
+  addKaseikyoKey("S.Sound EQ", Unmapped_Key, 0x12A, 0xC5);
+
+  addKaseikyoKey("Stop", Stop_Key, 0x1CA, 0x00);
+  addKaseikyoKey("Play_Reverse", Unmapped_Key, 0x1CA, 0x06);
+  addKaseikyoKey("Play/Pause", Play_Key, 0x1CA, 0x0A);
+  addKaseikyoKey("Play/Pause", Pause_Key, 0x1CA, 0x0A);
   addKaseikyoKey("1", One_Key, 0x1CA, 0x10);
   addKaseikyoKey("2", Two_Key, 0x1CA, 0x11);
   addKaseikyoKey("3", Three_Key, 0x1CA, 0x12);
-  addKaseikyoKey("Disc", NextDisc_Key, 0x0AA, 0xA4);
   addKaseikyoKey("4", Four_Key, 0x1CA, 0x13);
   addKaseikyoKey("5", Five_Key, 0x1CA, 0x14);
   addKaseikyoKey("6", Six_Key, 0x1CA, 0x15);
-  addKaseikyoKey(">10", DoubleDigit_Key, 0x1CA, 0x84);
   addKaseikyoKey("7", Seven_Key, 0x1CA, 0x16);
   addKaseikyoKey("8", Eight_Key, 0x1CA, 0x17);
   addKaseikyoKey("9", Nine_Key, 0x1CA, 0x18);
   addKaseikyoKey("0", Zero_Key, 0x1CA, 0x19);
-  addKaseikyoKey("program", Program_Key, 0x0AA, 0x8A);
-  addKaseikyoKey("cancel", Clear_Key, 0x0AA, 0xA3);
-  addKaseikyoKey("repeat", Repeat_Key, 0x0AA, 0x47);
-  addKaseikyoKey("random", Random_Key, 0x0AA, 0x4D);
-  addKaseikyoKey("aux", AuxInput_Key, 0x00A, 0x9A);
-  addKaseikyoKey("tape", TapeInput_Key, 0x08A, 0x96);
-  addKaseikyoKey("cd", CDInput_Key, 0x00A, 0x94);
-  addKaseikyoKey("tuner", TunerInput_Key, 0x04A, 0xA4);
+  addKaseikyoKey("Power", Power_Key, 0x1CA, 0x3D);
+  addKaseikyoKey("discrete on", PowerOn_Key, 0x1CA, 0x3E);
+  addKaseikyoKey("discrete off", PowerOff_Key, 0x1CA, 0x3F);
+  addKaseikyoKey("Back", Previous_Key, 0x1CA, 0x49);
+  addKaseikyoKey("Forward", Next_Key, 0x1CA, 0x4A);
+  addKaseikyoKey("Display", Info_Key, 0x1CA, 0x55);
+  addKaseikyoKey(">10", DoubleDigit_Key, 0x1CA, 0x84);
+  addKaseikyoKey("clock/timer", Timer_Key, 0x1CA, 0x95);
+  addKaseikyoKey("Sleep", Sleep_Key, 0x1CA, 0x96);
+  addKaseikyoKey("Dimmer", Unmapped_Key, 0x1CA, 0x97);
+  addKaseikyoKey("play/record timer", Unmapped_Key, 0x1CA, 0x9B);
+  addKaseikyoKey("play mode", Mode_Key, 0x1CA, 0xBB);
+}
+
+
+PanasonicAudio2a::PanasonicAudio2a(
+  unsigned int index)
+  : PanasonicAudio2(index)
+{
+  setKeysetName("Audio Keyset 2a");
+}
+
+
+void PanasonicAudio2a::populateProtocol(
+  QObject *guiObject)
+{
+  if (threadableProtocol)
+  {
+    // Keyset already populated.
+    return;
+  }
+
+  PanasonicAudio2::populateProtocol(guiObject);
+
+  addKaseikyoKey("INPUT: CD play/pause", CDInput_Key, 0x0AA, 0x0A);
+  addKaseikyoKey("INPUT: CD play/pause", Play_Key, 0x0AA, 0x0A);
+  addKaseikyoKey("INPUT: CD play/pause", Pause_Key, 0x0AA, 0x0A);
+}
+
+
+PanasonicAudio3::PanasonicAudio3(
+  unsigned int index)
+  : PIRKeysetMetaData(
+      "Audio Keyset 3",
+      Panasonic_Make,
+      index)
+{
+}
+
+
+void PanasonicAudio3::populateProtocol(
+  QObject *guiObject)
+{
+  if (threadableProtocol)
+  {
+    // Keyset already populated.
+    return;
+  }
+
+  threadableProtocol = new PanasonicOldProtocol(guiObject, index);
+
+  addPanOldKey("audio_power", Power_Key, 0x09, 0x20);
+  addPanOldKey("audio_phono", PhonoInput_Key, 0x09, 0x0C);
+  addPanOldKey("vol-", VolumeDown_Key, 0x09, 0x25);
+  addPanOldKey("vol+", VolumeUp_Key, 0x09, 0x24);
+  addPanOldKey("audio_video", Input_Key, 0x09, 0x2E);
+  addPanOldKey("audio_tape", TapeInput_Key, 0x09, 0x0A);
+  addPanOldKey("tuner-", ChannelDown_Key, 0x09, 0x23);
+  addPanOldKey("tuner+", ChannelUp_Key, 0x09, 0x22);
+  addPanOldKey("cd_skip-", Previous_Key, 0x0C, 0x02);
+  addPanOldKey("cd_skip+", Next_Key, 0x0C, 0x03);
+  addPanOldKey("cd_stop", Stop_Key, 0x0C, 0x00);
+  addPanOldKey("cd_play", Play_Key, 0x0C, 0x0A);
+  addPanOldKey("vcr_power", Unmapped_Key, 0x02, 0x20);
+  addPanOldKey("vcr_stop", Unmapped_Key, 0x02, 0x00);
+  addPanOldKey("vcr_ch-", Unmapped_Key, 0x02, 0x23);
+  addPanOldKey("vcr_ch+", Unmapped_Key, 0x02, 0x22);
+  addPanOldKey("tv_vcr", Unmapped_Key, 0x02, 0x2A);
+  addPanOldKey("vcr_pause", Unmapped_Key, 0x02, 0x06);
+  addPanOldKey("vcr_rec", Unmapped_Key, 0x02, 0x08);
+  addPanOldKey("tv_power", Unmapped_Key, 0x00, 0x20);
+  addPanOldKey("vcr_play", Unmapped_Key, 0x02, 0x0A);
+  addPanOldKey("vcr_rew", Unmapped_Key, 0x02, 0x02);
+  addPanOldKey("vcr_ff", Unmapped_Key, 0x02, 0x03);
+  addPanOldKey("tv_video", Unmapped_Key, 0x00, 0x0D);
+  addPanOldKey("tv_ant", Unmapped_Key, 0x00, 0x2A);
+  addPanOldKey("tv_ch-", Unmapped_Key, 0x00, 0x23);
+  addPanOldKey("tv_ch+", Unmapped_Key, 0x00, 0x22);
 }
 
 
@@ -806,11 +1048,11 @@ void PanasonicAC1::populateProtocol(
   setPreData(0x6681, 16);
 
   addKey("Operation", Power_Key, 0x81, 8);
-  addKey("Air Swing", Yellow_Key, 0x83, 8);
-  addKey("Temp Up", Red_Key, 0x85, 8);
-  addKey("Temp Down", Blue_Key, 0x8A, 8);
-  addKey("Economy", Green_Key, 0x8D, 8);
-  addKey("Timer", Sleep_Key, 0x90, 8);
-  addKey("Fan Speed", SoundMode_Key, 0x99, 8);
-  addKey("Mode", PictureMode_Key, 0x9B, 8);
+  addKey("Economy", EnergySave_Key, 0x82, 8);
+  addKey("Air Swing", Oscillate_Key, 0x83, 8);
+  addKey("Temp Up", TempUp_Key, 0x85, 8);
+  addKey("Temp Down", TempDown_Key, 0x8A, 8);
+  addKey("Fan Speed", FanFaster_Key, 0x99, 8);
+  addKey("Mode", Mode_Key, 0x9B, 8);
+  addKey("Timer", Timer_Key, 0x9F, 8);
 }