Mapped rocker switch to favorite keysets
authorJohn Pietrzak <john@pietrzak.org>
Tue, 14 Feb 2012 05:06:47 +0000 (00:06 -0500)
committerJohn Pietrzak <john@pietrzak.org>
Tue, 14 Feb 2012 05:06:47 +0000 (00:06 -0500)
In this update, I'm testing out mapping the rocker switch to the list of
favorite keysets.  Also, made a first pass at keysets for Digital Stream and
Emerson, and added one more Admiral keyset.

24 files changed:
doc/documentation.html
keysets/admiral.cpp
keysets/admiral.h
keysets/digitalstream.cpp [new file with mode: 0644]
keysets/digitalstream.h [new file with mode: 0644]
keysets/emerson.cpp [new file with mode: 0644]
keysets/emerson.h [new file with mode: 0644]
keysets/philips.cpp
keysets/philips.h
main.cpp
mainwindow.cpp
mainwindow.h
pierogi.pro
pierogi.pro.user
pirapplication.cpp [new file with mode: 0644]
pirapplication.h [new file with mode: 0644]
pirkeynames.h
pirkeysetmanager.cpp
pirmakenames.cpp
pirmakenames.h
qtc_packaging/debian_fremantle/changelog
qtc_packaging/debian_fremantle/control
www/MainTab.png
www/index.html

index e297fe3..0fe7038 100644 (file)
@@ -61,14 +61,14 @@ If you have a particular keyset you use often, it can be stored in the
 
 <h4>Main Tab</h4>
 
-<p>The Main tab contains just the power, volume, and channel buttons.  It is
-intended to be a quick way to get to the most important, commonly used
+<p>The Main tab contains just the power, volume, mute, and channel buttons.
+It is intended to be a quick way to get to the most important, commonly used
 controls.  The name of the current keyset is also provided in this tab.</p>
 
 <h4>Utility Tab</h4>
 
 <p>The Utility tab contains a selection of commonly useful controls, such as
-"Mute", "Sleep", "Input", "Closed Captions / Subtitles", and the color buttons.
+"Sleep", "Input", "Closed Captions / Subtitles", and the color buttons.
 This tab is intended to be a quick way to reach the most frequently used
 buttons; as such, the selection may be updated in future versions of Pierogi.
 </p>
index adcb060..676b988 100644 (file)
@@ -1,5 +1,6 @@
 #include "admiral.h"
 #include "protocols/sharpprotocol.h"
+#include "protocols/rc5protocol.h"
 
 AdmiralTV1::AdmiralTV1(
   QObject *guiObject,
@@ -36,6 +37,65 @@ AdmiralTV1::AdmiralTV1(
 }
 
 
+// The following is just a guess:
+AdmiralTV2::AdmiralTV2(
+  QObject *guiObject,
+  unsigned int index)
+  : PIRKeysetMetaData(
+      "TV Keyset 2",
+      Admiral_Make,
+      index)
+{
+  threadableProtocol = new RC5Protocol(guiObject, index);
+
+  addKey("0", Zero_Key, 0x1000, 13);
+  addKey("1", One_Key, 0x1001, 13);
+  addKey("2", Two_Key, 0x1002, 13);
+  addKey("3", Three_Key, 0x1003, 13);
+  addKey("4", Four_Key, 0x1004, 13);
+  addKey("5", Five_Key, 0x1005, 13);
+  addKey("6", Six_Key, 0x1006, 13);
+  addKey("7", Seven_Key, 0x1007, 13);
+  addKey("8", Eight_Key, 0x1008, 13);
+  addKey("9", Nine_Key, 0x1009, 13);
+  addKey("1-", DoubleDigit_Key, 0x100A, 13); // -/--
+  addKey("100", PlusOneHundred_Key, 0x100A, 13);
+  addKey("TV-Dash", Dash_Key, 0x100A, 13);
+  addKey("CP", Unmapped_Key, 0x100B, 13); // "C/P", "Channel/program/freq"
+  addKey("ON/OFF", Power_Key, 0x100C, 13);
+  addKey("MUTE", Mute_Key, 0x100D, 13);
+  addKey("pp", PrevChannel_Key, 0x100E, 13); // "GREEN", "Personal preference"
+  addKey("INFO", Info_Key, 0x100F, 13); // "+", "OSD"
+
+  addKey("VOL+", VolumeUp_Key, 0x1010, 13);
+  addKey("VOL-", VolumeDown_Key, 0x1011, 13);
+  addKey("BRIGHTNESS_UP", BrightnessUp_Key, 0x1012, 13);
+  addKey("BRIGHTNESS_DOWN", BrightnessDown_Key, 0x1013, 13);
+  addKey("CONTRAST_UP", ContrastUp_Key, 0x1014, 13);
+  addKey("CONTRAST_DOWN", ContrastDown_Key, 0x1015, 13);
+  addKey("BASS_UP", BassUp_Key, 0x1016, 13);
+  addKey("BASS_DOWN", BassDown_Key, 0x1017, 13);
+  addKey("TREBLE_UP", TrebleUp_Key, 0x1018, 13);
+  addKey("TREBLE_DOWN", TrebleDown_Key, 0x1019, 13);
+  addKey("BALANCE_RIGHT", BalanceRight_Key, 0x101A, 13);
+  addKey("BALANCE_LEFT", BalanceLeft_Key, 0x101B, 13);
+
+  addKey("P+", ChannelUp_Key, 0x1020, 13);
+  addKey("P-", ChannelDown_Key, 0x1021, 13);
+
+  addKey("PIP on/off", PIP_Key, 0x1058, 13);
+  addKey("PIP shift", PIPMove_Key, 0x1059, 13);
+  addKey("PIP/main picture swap", PIPSwap_Key, 0x105A, 13);
+  addKey("Select PIP source", PIPSource_Key, 0x105F, 13);
+  addKey("PIP Freeze", PIPPause_Key, 0x1065, 13);
+  addKey("PIP Freeze", PIPSize_Key, 0x1068, 13);
+  addKey("red", Red_Key, 0x106B, 13);
+  addKey("green", Green_Key, 0x106C, 13);
+  addKey("yellow", Yellow_Key, 0x106D, 13);
+  addKey("cyan", Blue_Key, 0x106E, 13);
+}
+
+
 AdmiralVCR1::AdmiralVCR1(
   QObject *guiObject,
   unsigned int index)
index ec9b045..f5721e0 100644 (file)
@@ -13,6 +13,14 @@ public:
     unsigned int index);
 };
 
+class AdmiralTV2: public PIRKeysetMetaData
+{
+public:
+  AdmiralTV2(
+    QObject *guiObject,
+    unsigned int index);
+};
+
 class AdmiralVCR1: public PIRKeysetMetaData
 {
 public:
diff --git a/keysets/digitalstream.cpp b/keysets/digitalstream.cpp
new file mode 100644 (file)
index 0000000..a873770
--- /dev/null
@@ -0,0 +1,51 @@
+#include "digitalstream.h"
+#include "protocols/necprotocol.h"
+
+
+DigitalStreamReceiver::DigitalStreamReceiver(
+  QObject *guiObject,
+  unsigned int index)
+  : PIRKeysetMetaData(
+      "Receiver Keyset 1",
+      DigitalStream_Make,
+      index)
+{
+  threadableProtocol = new NECProtocol(guiObject, index, true, true);
+
+  setPreData(0x482C, 16);
+
+  addKey("Power", Power_Key, 0x00, 8);
+  addKey("Ok", Select_Key, 0x01, 8);
+  addKey("Up", Up_Key, 0x02, 8);
+  addKey("Down", Down_Key, 0x03, 8);
+  addKey("Left", Left_Key, 0x04, 8);
+  addKey("Right", Right_Key, 0x05, 8);
+  addKey("Vol+", VolumeUp_Key, 0x06, 8);
+  addKey("Vol-", VolumeDown_Key, 0x07, 8);
+  addKey("Channel+", ChannelUp_Key, 0x08, 8);
+  addKey("Channel-", ChannelDown_Key, 0x09, 8);
+
+  addKey("0", Zero_Key, 0x10, 8);
+  addKey("1", One_Key, 0x11, 8);
+  addKey("2", Two_Key, 0x12, 8);
+  addKey("3", Three_Key, 0x13, 8);
+  addKey("4", Four_Key, 0x14, 8);
+  addKey("5", Five_Key, 0x15, 8);
+  addKey("6", Six_Key, 0x16, 8);
+  addKey("7", Seven_Key, 0x17, 8);
+  addKey("8", Eight_Key, 0x18, 8);
+  addKey("9", Nine_Key, 0x19, 8);
+  addKey("-", Dash_Key, 0x1A, 8);
+  addKey("Menu", Menu_Key, 0x1B, 8);
+  addKey("Back", Exit_Key, 0x1D, 8);
+  addKey("EPG", Guide_Key, 0x1E, 8);
+  addKey("FAV", Favorites_Key, 0x1F, 8);
+
+  addKey("Prev", PrevChannel_Key, 0x20, 8); // ?
+  addKey("Mute", Mute_Key, 0x22, 8);
+  addKey("Audio", Audio_Key, 0x23, 8);
+  addKey("Zoom", Zoom_Key, 0x24, 8);
+  addKey("CC", Captions_Key, 0x25, 8);
+  addKey("Info", Info_Key, 0x28, 8);
+  addKey("Meter", Unmapped_Key, 0x2C, 8);
+}
diff --git a/keysets/digitalstream.h b/keysets/digitalstream.h
new file mode 100644 (file)
index 0000000..d836c7b
--- /dev/null
@@ -0,0 +1,16 @@
+#ifndef DIGITALSTREAM_H
+#define DIGITALSTREAM_H
+
+#include "pirkeysetmetadata.h"
+
+class QObject;
+
+class DigitalStreamReceiver: public PIRKeysetMetaData
+{
+public:
+  DigitalStreamReceiver(
+    QObject *guiObject,
+    unsigned int index);
+};
+
+#endif // DIGITALSTREAM_H
diff --git a/keysets/emerson.cpp b/keysets/emerson.cpp
new file mode 100644 (file)
index 0000000..010a616
--- /dev/null
@@ -0,0 +1,100 @@
+#include "emerson.h"
+#include "protocols/necprotocol.h"
+
+EmersonTV1::EmersonTV1(
+  QObject *guiObject,
+  unsigned int index)
+  : PIRKeysetMetaData(
+      "TV Keyset 1",
+      Emerson_Make,
+      index)
+{
+  threadableProtocol = new NECProtocol(guiObject, index, true, false);
+
+  setPreData(0x0586, 16);
+
+  addKey("1", One_Key, 0x00, 8);
+  addKey("2", Two_Key, 0x01, 8);
+  addKey("3", Three_Key, 0x02, 8);
+  addKey("4", Four_Key, 0x03, 8);
+  addKey("5", Five_Key, 0x04, 8);
+  addKey("6", Six_Key, 0x05, 8);
+  addKey("7", Seven_Key, 0x06, 8);
+  addKey("8", Eight_Key, 0x07, 8);
+  addKey("9", Nine_Key, 0x08, 8);
+  addKey("0", Zero_Key, 0x09, 8);
+  addKey("CHUp", ChannelUp_Key, 0x0A, 8);
+  addKey("CHDown", ChannelDown_Key, 0x0B, 8);
+  addKey("VolUp", VolumeUp_Key, 0x0C, 8);
+  addKey("VolDown", VolumeDown_Key, 0x0D, 8);
+  addKey("Mute", Mute_Key, 0x0E, 8);
+  addKey("Power", Power_Key, 0x0F, 8);
+
+  addKey("QuickView", Unmapped_Key, 0x10, 8);
+  addKey("Sleep", Sleep_Key, 0x13, 8);
+  addKey("Menu", Menu_Key, 0x14, 8);
+  addKey("SetUp", Up_Key, 0x15, 8);
+  addKey("SetDown", Down_Key, 0x16, 8);
+  addKey("Call", Call_Key, 0x17, 8);
+  addKey("Enter", Select_Key, 0x18, 8);
+  addKey("Reset", Reset_Key, 0x19, 8);
+  addKey("Caption", Captions_Key, 0x1C, 8);
+  addKey("CapChan", Unmapped_Key, 0x1D, 8);
+}
+
+
+EmersonDVD1::EmersonDVD1(
+  QObject *guiObject,
+  unsigned int index)
+  : PIRKeysetMetaData(
+      "DVD Keyset 1",
+      Emerson_Make,
+      index)
+{
+  threadableProtocol = new NECProtocol(guiObject, index, true, true);
+
+  setPreData(0x2287, 16);
+
+  addKey("KEY_POWER", Power_Key, 0x41, 8);
+  addKey("KEY_AB", RepeatAB_Key, 0x43, 8);
+  addKey("KEY_OPENCLOSE", Eject_Key, 0x44, 8);
+  addKey("KEY_1", One_Key, 0x45, 8);
+  addKey("KEY_2", Two_Key, 0x46, 8);
+  addKey("KEY_3", Three_Key, 0x47, 8);
+  addKey("KEY_4", Four_Key, 0x48, 8);
+  addKey("KEY_5", Five_Key, 0x49, 8);
+  addKey("KEY_6", Six_Key, 0x4A, 8);
+  addKey("KEY_7", Seven_Key, 0x4B, 8);
+  addKey("KEY_8", Eight_Key, 0x4C, 8);
+  addKey("KEY_9", Nine_Key, 0x4D, 8);
+  addKey("KEY_0", Zero_Key, 0x4E, 8);
+
+  addKey("KEY_REPEAT", Repeat_Key, 0x50, 8);
+  addKey("KEY_PLUSTEN", DoubleDigit_Key, 0x51, 8);
+  addKey("KEY_REWIND", Rewind_Key, 0x52, 8);
+  addKey("KEY_FASTFORWARD", FastForward_Key, 0x53, 8);
+  addKey("KEY_DISPLAY", Info_Key, 0x55, 8);
+  addKey("KEY_SEARCHMODE", Unmapped_Key, 0x57, 8);
+  addKey("KEY_CLEAR", Clear_Key, 0x58, 8);
+  addKey("KEY_PAUSE", Pause_Key, 0x5B, 8);
+  addKey("KEY_MODE", Mode_Key, 0x5C, 8);
+  addKey("KEY_PREVIOUS", Previous_Key, 0x5D, 8);
+  addKey("KEY_PLAY", Play_Key, 0x5E, 8);
+  addKey("KEY_NEXT", Next_Key, 0x5F, 8);
+
+  addKey("KEY_STOP", Stop_Key, 0x60, 8);
+  addKey("KEY_TOPMENU", DiscTitle_Key, 0x70, 8);
+  addKey("KEY_MENU", DiscMenu_Key, 0x71, 8);
+  addKey("KEY_ENTER", Select_Key, 0x72, 8);
+  addKey("KEY_RETURN", Exit_Key, 0x73, 8);
+  addKey("KEY_SETUP", Menu_Key, 0x74, 8);
+  addKey("KEY_LEFTARROW", Left_Key, 0x75, 8);
+  addKey("KEY_RIGHTARROW", Right_Key, 0x76, 8);
+  addKey("KEY_UPARROW", Up_Key, 0x77, 8);
+  addKey("KEY_DOWNARROW", Down_Key, 0x78, 8);
+  addKey("KEY_ANGLE", Angle_Key, 0x79, 8);
+  addKey("KEY_SUBTITLE", Captions_Key, 0x7A, 8);
+  addKey("KEY_AUDIO", Audio_Key, 0x7B, 8);
+
+  addKey("KEY_VSURR", Surround_Key, 0x81, 8);
+}
diff --git a/keysets/emerson.h b/keysets/emerson.h
new file mode 100644 (file)
index 0000000..179032b
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef EMERSON_H
+#define EMERSON_H
+
+#include "pirkeysetmetadata.h"
+
+class QObject;
+
+class EmersonTV1: public PIRKeysetMetaData
+{
+public:
+  EmersonTV1(
+    QObject *guiObject,
+    unsigned int index);
+};
+
+class EmersonDVD1: public PIRKeysetMetaData
+{
+public:
+  EmersonDVD1(
+    QObject *guiObject,
+    unsigned int index);
+};
+
+#endif // EMERSON_H
index bd4fe4c..3bea2bf 100644 (file)
@@ -16,52 +16,45 @@ PhilipsTV1::PhilipsTV1(
 
   threadableProtocol = new RC5Protocol(guiObject, index);
 
-  addKey("ON/OFF", Power_Key, 0x100C, 13);
-  addKey("1", One_Key, 0x1001, 13);
-  addKey("2", Two_Key, 0x1002, 13);
-  addKey("3", Three_Key, 0x1003, 13);
-  addKey("4", Four_Key, 0x1004, 13);
-  addKey("5", Five_Key, 0x1005, 13);
-  addKey("6", Six_Key, 0x1006, 13);
-  addKey("7", Seven_Key, 0x1007, 13);
-  addKey("8", Eight_Key, 0x1008, 13);
-  addKey("9", Nine_Key, 0x1009, 13);
-  addKey("0", Zero_Key, 0x1000, 13);
-  addKey("VOL+", VolumeUp_Key, 0x1010, 13);
-  addKey("VOL-", VolumeDown_Key, 0x1011, 13);
-  addKey("MUTE", Mute_Key, 0x100D, 13);
-  addKey("P+", ChannelUp_Key, 0x1020, 13);
-  addKey("P-", ChannelDown_Key, 0x1021, 13);
   addKey("UP", Up_Key, 0x0010, 13);
   addKey("DOWN", Down_Key, 0x0011, 13);
   addKey("MENU", Menu_Key, 0x0012, 13);
   addKey("exit", Exit_Key, 0x0013, 13);
   addKey("LEFT", Left_Key, 0x0015, 13);
   addKey("RIGHT", Right_Key, 0x0016, 13);
-  addKey("AV", Input_Key, 0x1038, 13); // "EXT", "SOURCE"
-  addKey("TIMER", Sleep_Key, 0x1026, 13); // "POWER-OFF", "sleep"
-  addKey("TELETEXT", Teletext_Key, 0x0017, 13);
-  addKey("I/II", Audio_Key, 0x1023, 13); // "TEXT_REVEAL", "Stereo"
-  addKey("RED", Red_Key, 0x00C8, 13);
-  addKey("GREEN", Green_Key, 0x00FB, 13);
-  addKey("YELLOW", Yellow_Key, 0x00F1, 13); // "radio"
-  addKey("BLUE", Blue_Key, 0x10F9, 13);
-  addKey("CENTER", Unmapped_Key, 0x1029, 13); // "TEXT_STOP_SEQUENCE", etc.
-  addKey("MY_AUDIO", Unmapped_Key, 0x10D2, 13);
-  addKey("EXPAND", Surround_Key, 0x1024, 13); // "STEREO", "spatial"
-  addKey("INFO", Info_Key, 0x100F, 13); // "+", "OSD"
-  addKey("TEXT_TV", TeletextAndTV_Key, 0x103C, 13); // "TELETEXT"
-  addKey("SURF", Unmapped_Key, 0x1022, 13);
-  addKey("TEXT_CLOCK", TeletextTime_Key, 0x102A, 13); // "time"
-  addKey("TEXT_ENLARGE", TeletextSize_Key, 0x102B, 13); // "Reduce_Teletext"
+//  addKey("TELETEXT", Teletext_Key, 0x0017, 13);
   addKey("PICTURE_SETTINGS", PictureMode_Key, 0x002B, 13);
   addKey("SOUND_SETTINGS", SoundMode_Key, 0x002C, 13);
   addKey("GAME", Unmapped_Key, 0x002E, 13);
+  addKey("fav", Favorites_Key, 0x0039, 13);
+  addKey("SCREEN_WIDTH", AspectRatio_Key, 0x003E, 13); // "format"
+  addKey("RED", Red_Key, 0x00C8, 13);
+  addKey("YELLOW", Yellow_Key, 0x00F1, 13); // "radio"
+  addKey(".", Unmapped_Key, 0x00F8, 13);
+  addKey("Cinema", Unmapped_Key, 0x00F9, 13);
+  addKey("GREEN", Green_Key, 0x00FB, 13);
+
+  addKey("0", Zero_Key, 0x1000, 13);
+  addKey("1", One_Key, 0x1001, 13);
+  addKey("2", Two_Key, 0x1002, 13);
+  addKey("3", Three_Key, 0x1003, 13);
+  addKey("4", Four_Key, 0x1004, 13);
+  addKey("5", Five_Key, 0x1005, 13);
+  addKey("6", Six_Key, 0x1006, 13);
+  addKey("7", Seven_Key, 0x1007, 13);
+  addKey("8", Eight_Key, 0x1008, 13);
+  addKey("9", Nine_Key, 0x1009, 13);
   addKey("1-", DoubleDigit_Key, 0x100A, 13); // -/--
   addKey("100", PlusOneHundred_Key, 0x100A, 13);
   addKey("TV-Dash", Dash_Key, 0x100A, 13);
+  addKey("ON/OFF", Power_Key, 0x100C, 13);
   addKey("CP", Unmapped_Key, 0x100B, 13); // "C/P"
+  addKey("MUTE", Mute_Key, 0x100D, 13);
   addKey("pp", PrevChannel_Key, 0x100E, 13); // "GREEN"
+  addKey("INFO", Info_Key, 0x100F, 13); // "+", "OSD"
+
+  addKey("VOL+", VolumeUp_Key, 0x1010, 13);
+  addKey("VOL-", VolumeDown_Key, 0x1011, 13);
   addKey("BRIGHTNESS_UP", BrightnessUp_Key, 0x1012, 13);
   addKey("BRIGHTNESS_DOWN", BrightnessDown_Key, 0x1013, 13);
   addKey("CONTRAST_UP", ContrastUp_Key, 0x1014, 13);
@@ -73,39 +66,50 @@ PhilipsTV1::PhilipsTV1(
   addKey("BALANCE_RIGHT", BalanceRight_Key, 0x101A, 13);
   addKey("BALANCE_LEFT", BalanceLeft_Key, 0x101B, 13);
   addKey("TT_OUT", Unmapped_Key, 0x101D, 13);
-  addKey("TT_UPDOWN", TeletextSize_Key, 0x102B, 13); // "TELETEXT_RESIZE"
-  addKey("TT_X", TeletextOff_Key, 0x102D, 13); // "TELETEXT_OFF"
-  addKey("TT_TV", TeletextAndTV_Key, 0x103F, 13);
   addKey("TT_PLAY", TeletextReveal_Key, 0x101E, 13);
-  addKey("TT_INFO", Unmapped_Key, 0x102C, 13); // "TELETEXT_ADDINFO"
+
+  addKey("P+", ChannelUp_Key, 0x1020, 13);
+  addKey("P-", ChannelDown_Key, 0x1021, 13);
+  addKey("SURF", Unmapped_Key, 0x1022, 13);
+  addKey("I/II", Audio_Key, 0x1023, 13); // "TEXT_REVEAL", "Stereo"
+  addKey("EXPAND", Surround_Key, 0x1024, 13); // "STEREO", "spatial"
+  addKey("TIMER", Sleep_Key, 0x1026, 13); // "POWER-OFF", "sleep"
+  addKey("PLAY", Play_Key, 0x1028, 13);
+//  addKey("CENTER", Unmapped_Key, 0x1029, 13); // "TEXT_STOP_SEQUENCE", etc.
   addKey("TT_STOP", TeletextHold_Key, 0x1029, 13);
-  addKey("TT_TIME", TeletextTime_Key, 0x102A, 13);
+  addKey("TEXT_CLOCK", TeletextTime_Key, 0x102A, 13); // "time", "TT_TIME"
+  addKey("TEXT_ENLARGE", TeletextSize_Key, 0x102B, 13); // "Reduce_Teletext"
+  addKey("TT_INFO", Unmapped_Key, 0x102C, 13); // "TELETEXT_ADDINFO"
+  addKey("TT_X", TeletextOff_Key, 0x102D, 13); // "TELETEXT_OFF"
   addKey("TT_MIX", Unmapped_Key, 0x102E, 13);
-  addKey("TELETEXT", Teletext_Key, 0x103C, 13);
-  // The media keys are not well described!  -- config file 5373
-  addKey("RECORD", Record_Key, 0x1037, 13);
   addKey("BACK", Unmapped_Key, 0x102F, 13);
-  addKey("STOP", Stop_Key, 0x1036, 13);
-  addKey("PLAY", Play_Key, 0x1028, 13);
-  addKey("FORWARD", Unmapped_Key, 0x1035, 13);
-  addKey("REVERSE", Unmapped_Key, 0x1033, 13);
-  addKey("SKIP", Unmapped_Key, 0x1177, 13);
-  addKey("FAST_BACK", Unmapped_Key, 0x116F, 13);
-  addKey("DOWN", Unmapped_Key, 0x1176, 13);
-  addKey("PLAY_3", Unmapped_Key, 0x1168, 13);
-  addKey("FAST_FORWARD", Unmapped_Key, 0x1175, 13);
-  addKey("SCREEN_WIDTH", AspectRatio_Key, 0x003E, 13); // "format"
+
   addKey("vcr_rewind", Rewind_Key, 0x1032, 13);
+  addKey("REVERSE", Unmapped_Key, 0x1033, 13);
   addKey("vcr_fastforward", FastForward_Key, 0x1034, 13);
-  addKey("ambilight_power", Unmapped_Key, 0x10E3, 13);
-  addKey("ambilight_mode", Unmapped_Key, 0x10E4, 13);
-  addKey("fav", Favorites_Key, 0x0039, 13);
-  addKey(".", Unmapped_Key, 0x00F8, 13);
-  addKey("Cinema", Unmapped_Key, 0x00F9, 13);
+  addKey("FORWARD", Unmapped_Key, 0x1035, 13);
+  addKey("STOP", Stop_Key, 0x1036, 13);
+  addKey("RECORD", Record_Key, 0x1037, 13);
+  addKey("AV", Input_Key, 0x1038, 13); // "EXT", "SOURCE"
+  addKey("TELETEXT", Teletext_Key, 0x103C, 13);
+  addKey("TEXT_TV", TeletextAndTV_Key, 0x103C, 13); // "TELETEXT"
+//  addKey("TT_TV", TeletextAndTV_Key, 0x103F, 13);
+
+  addKey("MY_AUDIO", Unmapped_Key, 0x10D2, 13);
   addKey("PAY-TV_UP", Unmapped_Key, 0x10DC, 13);
   addKey("PAY-TV_DOWN", Unmapped_Key, 0x10DD, 13);
   addKey("RADIO_UP", Unmapped_Key, 0x10DE, 13);
   addKey("RADIO_DOWN", Unmapped_Key, 0x10DF, 13);
+  addKey("ambilight_power", Unmapped_Key, 0x10E3, 13);
+  addKey("ambilight_mode", Unmapped_Key, 0x10E4, 13);
+  addKey("BLUE", Blue_Key, 0x10F9, 13);
+
+  // The media keys are not well described!  -- config file 5373
+  addKey("FAST_BACK", Unmapped_Key, 0x116F, 13);
+  addKey("PLAY_3", Unmapped_Key, 0x1168, 13);
+  addKey("FAST_FORWARD", Unmapped_Key, 0x1175, 13);
+  addKey("DOWN", Unmapped_Key, 0x1176, 13);
+  addKey("SKIP", Unmapped_Key, 0x1177, 13);
 }
 
 
@@ -131,8 +135,8 @@ PhilipsTV1b::PhilipsTV1b(
 
   addControlledDevice(Philips_Make, "29PT5507", TV_Device);
 
-  addKey("sound", Unmapped_Key, 0x1014, 13);
   addKey("radio", Unmapped_Key, 0x00F1, 13);
+  addKey("sound", Unmapped_Key, 0x1014, 13);
   addKey("screen", Unmapped_Key, 0x1015, 13);
   addKey("rec", Record_Key, 0x002B, 13);
   addKey("rewind", Rewind_Key, 0x002C, 13);
@@ -410,25 +414,7 @@ PhilipsDVD1::PhilipsDVD1(
 
   threadableProtocol = new RC6Protocol(guiObject, index, 0x04);
 
-  addKey("Standby", Power_Key, 0x0C, 8);
-  addKey("Forward", FastForward_Key, 0x28, 8);
-  addKey("Rewind", Rewind_Key, 0x29, 8);
-  addKey("Stop", Stop_Key, 0x31, 8);
-  addKey("Play", Play_Key, 0x2C, 8);
-  addKey("Still", Pause_Key, 0x30, 8); // "pause"
-  addKey("Subtitle", Captions_Key, 0x4B, 8);
-  addKey("Title", DiscTitle_Key, 0x71, 8);
-  addKey("Menu", DiscMenu_Key, 0x54, 8);
-  addKey("System_Menu", Menu_Key, 0x82, 8); // "setup"
-  addKey("OK", Select_Key, 0x5C, 8);
-  addKey("Left", Left_Key, 0x5A, 8);
-  addKey("Right", Right_Key, 0x5B, 8);
-  addKey("Up", Up_Key, 0x58, 8);
-  addKey("Down", Down_Key, 0x59, 8);
-  addKey("Return", Exit_Key, 0x83, 8);
-  addKey("Skip_Right", Next_Key, 0x20, 8); // "next"
-  addKey("Skip_Left", Previous_Key, 0x21, 8); // "prev"
-  addKey("Audio", Audio_Key, 0x4E, 8);
+  addKey("0", Zero_Key, 0x00, 8);
   addKey("1", One_Key, 0x01, 8);
   addKey("2", Two_Key, 0x02, 8);
   addKey("3", Three_Key, 0x03, 8);
@@ -438,21 +424,46 @@ PhilipsDVD1::PhilipsDVD1(
   addKey("7", Seven_Key, 0x07, 8);
   addKey("8", Eight_Key, 0x08, 8);
   addKey("9", Nine_Key, 0x09, 8);
-  addKey("0", Zero_Key, 0x00, 8);
+  addKey("Standby", Power_Key, 0x0C, 8);
+  addKey("Mute", Mute_Key, 0x0D, 8);
   addKey("Display", Info_Key, 0x0F, 8);
-  addKey("Angle", Angle_Key, 0x85, 8);
-  addKey("Zoom", Zoom_Key, 0xF7, 8);
-  addKey("Repeat", Repeat_Key, 0x1D, 8);
-  addKey("Repeat_AB", RepeatAB_Key, 0x3B, 8);
+
+  addKey("dim", Unmapped_Key, 0x13, 8);
   addKey("Shuffle", Random_Key, 0x1C, 8);
+  addKey("Repeat", Repeat_Key, 0x1D, 8);
+
+  addKey("Skip_Right", Next_Key, 0x20, 8); // "next"
+  addKey("Skip_Left", Previous_Key, 0x21, 8); // "prev"
+  addKey("Forward", FastForward_Key, 0x28, 8);
+  addKey("Rewind", Rewind_Key, 0x29, 8);
   addKey("Scan", Scan_Key, 0x2A, 8);
-  addKey("Secret", Unmapped_Key, 0xEB, 8);
+  addKey("Play", Play_Key, 0x2C, 8);
+
+  addKey("Still", Pause_Key, 0x30, 8); // "pause"
+  addKey("Stop", Stop_Key, 0x31, 8);
+  addKey("Repeat_AB", RepeatAB_Key, 0x3B, 8);
+
+  addKey("open-close", Eject_Key, 0x42, 8);
+  addKey("Subtitle", Captions_Key, 0x4B, 8);
+  addKey("Audio", Audio_Key, 0x4E, 8);
+
+  addKey("sound-mode", SoundMode_Key, 0x50, 8);
+  addKey("Menu", DiscMenu_Key, 0x54, 8);
+  addKey("Up", Up_Key, 0x58, 8);
+  addKey("Down", Down_Key, 0x59, 8);
+  addKey("Left", Left_Key, 0x5A, 8);
+  addKey("Right", Right_Key, 0x5B, 8);
+  addKey("OK", Select_Key, 0x5C, 8);
+
+  addKey("Title", DiscTitle_Key, 0x71, 8);
+  addKey("System_Menu", Menu_Key, 0x82, 8); // "setup"
+  addKey("Return", Exit_Key, 0x83, 8);
+  addKey("Angle", Angle_Key, 0x85, 8);
   addKey("Preview", Unmapped_Key, 0xB5, 8);
-  addKey("Mute", Mute_Key, 0x0D, 8);
   addKey("T-C", Unmapped_Key, 0xC8, 8);
-  addKey("dim", Unmapped_Key, 0x13, 8);
+  addKey("Secret", Unmapped_Key, 0xEB, 8);
+  addKey("Zoom", Zoom_Key, 0xF7, 8);
   addKey("fts", Unmapped_Key, 0xFB, 8);
-  addKey("sound-mode", SoundMode_Key, 0x50, 8);
 }
 
 
@@ -465,9 +476,9 @@ PhilipsDVD1a::PhilipsDVD1a(
 
   addControlledDevice(Philips_Make, "DVP-5982", DVD_Device);
 
-  addKey("Power", Power_Key, 0xC7, 8);
   addKey("Play_Pause", Pause_Key, 0x2C, 8);
   addKey("USB", Unmapped_Key, 0x7E, 8);
+  addKey("Power", Power_Key, 0xC7, 8);
 }
 
 
@@ -480,9 +491,9 @@ PhilipsDVD1b::PhilipsDVD1b(
 
   addControlledDevice(Philips_Make, "DVP-642", DVD_Device);
 
-  addKey("Title", DiscTitle_Key, 0x83, 8);
   addKey("Forward", FastForward_Key, 0x20, 8);
   addKey("Reverse", Rewind_Key, 0x21, 8);
+  addKey("Title", DiscTitle_Key, 0x83, 8);
 }
 
 
@@ -491,19 +502,18 @@ PhilipsDVD1c::PhilipsDVD1c(
   unsigned int index)
   : PhilipsDVD1(guiObject, index)
 {
-  setKeysetName("DVD (HT) Keyset 1c");
+  setKeysetName("DVD Keyset 1c");
 
   addControlledDevice(Philips_Make, "HTS3544", DVD_Device);
   addControlledDevice(Philips_Make, "DVP5982", DVD_Device);
 
-  addKey("power", Power_Key, 0xC7, 8);
-  addKey("disc-usb", Unmapped_Key, 0x3F, 8);
-  addKey("open-close", Eject_Key, 0x42, 8);
-  addKey("program", Program_Key, 0xFB, 8);
-  addKey("menu", DiscMenu_Key, 0xD1, 8);
-  addKey("title", DiscTitle_Key, 0x83, 8);
   addKey("play-pause", Pause_Key, 0x2C, 8);
+  addKey("disc-usb", Unmapped_Key, 0x3F, 8);
   addKey("USB", Unmapped_Key, 0x7E, 8);
+  addKey("title", DiscTitle_Key, 0x83, 8);
+  addKey("power", Power_Key, 0xC7, 8);
+  addKey("menu", DiscMenu_Key, 0xD1, 8);
+  addKey("program", Program_Key, 0xFB, 8);
 }
 
 
@@ -516,9 +526,9 @@ PhilipsDVD1d::PhilipsDVD1d(
 
   addControlledDevice(Philips_Make, "DVD 963sa", DVD_Device);
 
-  addKey("display", Info_Key, 0x48, 8);
-  addKey("ff-left", Rewind_Key, 0x21, 8);
   addKey("ff-right", FastForward_Key, 0x20, 8);
+  addKey("ff-left", Rewind_Key, 0x21, 8);
+  addKey("display", Info_Key, 0x48, 8);
 }
 
 
@@ -532,33 +542,7 @@ PhilipsDVD2::PhilipsDVD2(
 {
   threadableProtocol = new RC6Protocol(guiObject, index, 0x46);
 
-  addKey("power", Power_Key, 0xC7, 8);
-  addKey("topmenu", DiscTitle_Key, 0x9C, 8);
-  addKey("bonus", Unmapped_Key, 0x5D, 8);
-  addKey("repeat", Repeat_Key, 0x1D, 8);
-  addKey("hdmi", HDMIInput_Key, 0xC6, 8);
-  addKey("red", Red_Key, 0x6D, 8);
-  addKey("green", Green_Key, 0x6E, 8);
-  addKey("yellow", Yellow_Key, 0x6F, 8);
-  addKey("blue", Blue_Key, 0x70, 8);
-  addKey("home", Menu_Key, 0x92, 8);
-  addKey("menu", DiscMenu_Key, 0x9A, 8);
-  addKey("options", Unmapped_Key, 0xC9, 8);
-  addKey("up", Up_Key, 0x58, 8);
-  addKey("left", Left_Key, 0x5A, 8);
-  addKey("right", Right_Key, 0x5B, 8);
-  addKey("down", Down_Key, 0x59, 8);
-  addKey("ok", Select_Key, 0x5C, 8);
-  addKey("back", Exit_Key, 0x83, 8);
-  addKey("info", Info_Key, 0x0F, 8);
-  addKey("prev", Previous_Key, 0x21, 8);
-  addKey("play", Play_Key, 0x2C, 8);
-  addKey("pause", Pause_Key, 0x30, 8);
-  addKey("next", Next_Key, 0x20, 8);
-  addKey("bwd", Rewind_Key, 0x29, 8);
-  addKey("stop", Stop_Key, 0x31, 8);
-  addKey("fwd", FastForward_Key, 0x28, 8);
-  addKey("eject", Eject_Key, 0x42, 8);
+  addKey("0", Zero_Key, 0x00, 8);
   addKey("1", One_Key, 0x01, 8);
   addKey("2", Two_Key, 0x02, 8);
   addKey("3", Three_Key, 0x03, 8);
@@ -568,9 +552,41 @@ PhilipsDVD2::PhilipsDVD2(
   addKey("7", Seven_Key, 0x07, 8);
   addKey("8", Eight_Key, 0x08, 8);
   addKey("9", Nine_Key, 0x09, 8);
-  addKey("0", Zero_Key, 0x00, 8);
+  addKey("info", Info_Key, 0x0F, 8);
+
+  addKey("repeat", Repeat_Key, 0x1D, 8);
+
+  addKey("next", Next_Key, 0x20, 8);
+  addKey("prev", Previous_Key, 0x21, 8);
+  addKey("fwd", FastForward_Key, 0x28, 8);
+  addKey("bwd", Rewind_Key, 0x29, 8);
+  addKey("play", Play_Key, 0x2C, 8);
+  addKey("pause", Pause_Key, 0x30, 8);
+  addKey("stop", Stop_Key, 0x31, 8);
+
+  addKey("eject", Eject_Key, 0x42, 8);
   addKey("subtitle", Captions_Key, 0x4B, 8);
   addKey("audio", Audio_Key, 0x4E, 8);
+
+  addKey("up", Up_Key, 0x58, 8);
+  addKey("down", Down_Key, 0x59, 8);
+  addKey("left", Left_Key, 0x5A, 8);
+  addKey("right", Right_Key, 0x5B, 8);
+  addKey("ok", Select_Key, 0x5C, 8);
+  addKey("bonus", Unmapped_Key, 0x5D, 8);
+
+  addKey("red", Red_Key, 0x6D, 8);
+  addKey("green", Green_Key, 0x6E, 8);
+  addKey("yellow", Yellow_Key, 0x6F, 8);
+  addKey("blue", Blue_Key, 0x70, 8);
+
+  addKey("back", Exit_Key, 0x83, 8);
+  addKey("home", Menu_Key, 0x92, 8);
+  addKey("menu", DiscMenu_Key, 0x9A, 8);
+  addKey("topmenu", DiscTitle_Key, 0x9C, 8);
+  addKey("hdmi", HDMIInput_Key, 0xC6, 8);
+  addKey("power", Power_Key, 0xC7, 8);
+  addKey("options", Unmapped_Key, 0xC9, 8);
 }
 
 
@@ -586,40 +602,6 @@ PhilipsDVD3::PhilipsDVD3(
 
   threadableProtocol = new RC6Protocol(guiObject, index, 0x32);
 
-  addKey("Power", Power_Key, 0x0C, 8);
-  addKey("Edit", Unmapped_Key, 0xF1, 8);
-  addKey("LiveTV", LiveTV_Key, 0xEE, 8);
-  addKey("Disc", DiscMenu_Key, 0xD1, 8);
-  addKey("Select", Unmapped_Key, 0xC9, 8);
-  addKey("Cam", Unmapped_Key, 0xC3, 8);
-  addKey("TVGuide", Guide_Key, 0xC2, 8);
-  addKey("Home", Menu_Key, 0x92, 8);
-  addKey("HDDLIst", Unmapped_Key, 0x90, 8);
-  addKey("Back", Unmapped_Key, 0x83, 8);
-  addKey("Options", Unmapped_Key, 0x82, 8);
-  addKey("USB", Unmapped_Key, 0x7E, 8);
-  addKey("Blue", Blue_Key, 0x70, 8);
-  addKey("Yellow", Yellow_Key, 0x6F, 8);
-  addKey("Green", Green_Key, 0x6E, 8);
-  addKey("Red", Red_Key, 0x6D, 8);
-  addKey("OK", Select_Key, 0x5C, 8);
-  addKey("Right", Right_Key, 0x5B, 8);
-  addKey("Left", Left_Key, 0x5A, 8);
-  addKey("Down", Down_Key, 0x59, 8);
-  addKey("Up", Up_Key, 0x58, 8);
-  addKey("Audio", Audio_Key, 0x4E, 8);
-  addKey("Subtitle", Captions_Key, 0x4B, 8);
-  addKey("Scart", ScartInput_Key, 0x43, 8);
-  addKey("Rec", Record_Key, 0x37, 8);
-  addKey("Stop", Stop_Key, 0x31, 8);
-  addKey("Play", Play_Key, 0x2C, 8);
-  addKey("Rew", Rewind_Key, 0x29, 8);
-  addKey("Ffw", FastForward_Key, 0x28, 8);
-  addKey("Prev", Previous_Key, 0x21, 8);
-  addKey("Next", Next_Key, 0x20, 8);
-  addKey("Ch-", ChannelDown_Key, 0x10, 8);
-  addKey("Ch+", ChannelUp_Key, 0x11, 8);
-  addKey("Info", Info_Key, 0x0F, 8);
   addKey("0", Zero_Key, 0x00, 8);
   addKey("1", One_Key, 0x01, 8);
   addKey("2", Two_Key, 0x02, 8);
@@ -630,6 +612,79 @@ PhilipsDVD3::PhilipsDVD3(
   addKey("7", Seven_Key, 0x07, 8);
   addKey("8", Eight_Key, 0x08, 8);
   addKey("9", Nine_Key, 0x09, 8);
+  addKey("Power", Power_Key, 0x0C, 8);
+  addKey("Info", Info_Key, 0x0F, 8);
+
+  addKey("Ch-", ChannelDown_Key, 0x10, 8);
+  addKey("Ch+", ChannelUp_Key, 0x11, 8);
+  addKey("shuffle", Random_Key, 0x1C, 8);
+  addKey("repeat", Repeat_Key, 0x1D, 8);
+
+  addKey("Next", Next_Key, 0x20, 8);
+  addKey("Prev", Previous_Key, 0x21, 8);
+  addKey("Ffw", FastForward_Key, 0x28, 8);
+  addKey("Rew", Rewind_Key, 0x29, 8);
+  addKey("Play", Play_Key, 0x2C, 8);
+  addKey("Play", Pause_Key, 0x2C, 8);
+  addKey("Stop", Stop_Key, 0x31, 8);
+  addKey("Rec", Record_Key, 0x37, 8);
+
+  addKey("Scart", ScartInput_Key, 0x43, 8);
+  addKey("Subtitle", Captions_Key, 0x4B, 8);
+  addKey("Audio", Audio_Key, 0x4E, 8);
+
+  addKey("Up", Up_Key, 0x58, 8);
+  addKey("Down", Down_Key, 0x59, 8);
+  addKey("Left", Left_Key, 0x5A, 8);
+  addKey("Right", Right_Key, 0x5B, 8);
+  addKey("OK", Select_Key, 0x5C, 8);
+  addKey("inputnext", Input_Key, 0x5E, 8);
+
+  addKey("Last_ch", PrevChannel_Key, 0x6A, 8);
+  addKey("Red", Red_Key, 0x6D, 8);
+  addKey("Green", Green_Key, 0x6E, 8);
+  addKey("Yellow", Yellow_Key, 0x6F, 8);
+  addKey("Blue", Blue_Key, 0x70, 8);
+  addKey("USB", Unmapped_Key, 0x7E, 8);
+
+  addKey("Options", Unmapped_Key, 0x82, 8);
+  addKey("Back", Exit_Key, 0x83, 8); // "Exit"
+  addKey("angle", Angle_Key, 0x85, 8);
+  addKey("inoputtuner", TunerInput_Key, 0x8A, 8);
+
+  addKey("HDDList", Unmapped_Key, 0x90, 8);
+  addKey("Home", Menu_Key, 0x92, 8);
+
+  addKey("TVGuide", Guide_Key, 0xC2, 8);
+  addKey("Cam", Unmapped_Key, 0xC3, 8);
+  addKey("t/c", Unmapped_Key, 0xC8, 8); // title/chapter
+  addKey("Select", Unmapped_Key, 0xC9, 8); // "menuselect"
+
+  addKey("Disc", DiscMenu_Key, 0xD1, 8);
+  addKey("zoom", Zoom_Key, 0xD3, 8);
+  addKey("LiveTV", LiveTV_Key, 0xEE, 8);
+  addKey("Edit", Unmapped_Key, 0xF1, 8);
+  addKey("timer", Timer_Key, 0xFE, 8);
+}
+
+
+PhilipsDVD3a::PhilipsDVD3a(
+  QObject *guiObject,
+  unsigned int index)
+  : PhilipsDVD3(guiObject, index)
+{
+  setKeysetName("DVD Keyset 3a");
+
+  addControlledDevice(Philips_Make, "DVDR-3455H", DVD_Device);
+
+  addKey("CH+", ChannelUp_Key, 0x1E, 8);
+  addKey("CH-", ChannelDown_Key, 0x1F, 8);
+  addKey("Menu", Menu_Key, 0x54, 8);
+  addKey("InputDVD", Unmapped_Key, 0x90, 8);
+  addKey("InputHDD", Unmapped_Key, 0x92, 8);
+  addKey("inputusb", USBInput_Key, 0xC3, 8);
+  addKey("Audio", Audio_Key, 0xD2, 8);
+  addKey("Record", Record_Key, 0xF3, 8);
 }
 
 
@@ -645,29 +700,7 @@ PhilipsDVD4::PhilipsDVD4(
 
   threadableProtocol = new RC6Protocol(guiObject, index, 0x30);
 
-  addKey("Power", Power_Key, 0x0C, 8);
-  addKey("TVDVD", Input_Key, 0x43, 8);
-  addKey("STOP", Stop_Key, 0x31, 8);
-  addKey("RECORD", Record_Key, 0x37, 8);
-  addKey("PLAY", Play_Key, 0x2C, 8);
-  addKey("REWIND", Rewind_Key, 0x29, 8);
-  addKey("PAUSE", Pause_Key, 0x30, 8);
-  addKey("SLOW", Slow_Key, 0x22, 8);
-  addKey("FORWARD", FastForward_Key, 0x28, 8);
-  addKey("PREVIOUS", Previous_Key, 0x21, 8);
-  addKey("NEXT", Next_Key, 20, 8);
-  addKey("DISC", Unmapped_Key, 0x54, 8);
-  addKey("EDIT", Unmapped_Key, 0xCF, 8);
-  addKey("SYSTEM", Info_Key, 0x0F, 8);
-  addKey("UP", Up_Key, 0x58, 8);
-  addKey("DOWN", Down_Key, 0x59, 8);
-  addKey("LEFT", Left_Key, 0x5A, 8);
-  addKey("RIGHT", Right_Key, 0x5B, 8);
-  addKey("CLEAR", Clear_Key, 0x41, 8);
-  addKey("TIMER", Timer_Key, 0xFE, 8);
-  addKey("SELECT", Select_Key, 0xFA, 8);
-  addKey("PROGPLUS", ChannelUp_Key, 0x1E, 8);
-  addKey("PROGMINUS", ChannelDown_Key, 0x1F, 8);
+  addKey("0", Zero_Key, 0x00, 8);
   addKey("1", One_Key, 0x01, 8);
   addKey("2", Two_Key, 0x02, 8);
   addKey("3", Three_Key, 0x03, 8);
@@ -677,17 +710,48 @@ PhilipsDVD4::PhilipsDVD4(
   addKey("7", Seven_Key, 0x07, 8);
   addKey("8", Eight_Key, 0x08, 8);
   addKey("9", Nine_Key, 0x09, 8);
-  addKey("0", Zero_Key, 0x00, 8);
-  addKey("TC", Unmapped_Key, 0xC8, 8);
-  addKey("TUNER", TunerInput_Key, 0xEE, 8);
-  addKey("ZOOM", Zoom_Key, 0xF7, 8);
-  addKey("ANGLE", Angle_Key, 0x85, 8);
-  addKey("SUBTITLE", Captions_Key, 0x4B, 8);
-  addKey("AUDIO", Audio_Key, 0x4E, 8);
+
+  addKey("Power", Power_Key, 0x0C, 8);
+  addKey("SYSTEM", Info_Key, 0x0F, 8);
+
   addKey("DIM", Unmapped_Key, 0x13, 8);
   addKey("REPEAT", Repeat_Key, 0x1D, 8);
-  addKey("REPEATAB", RepeatAB_Key, 0x3B, 8);
+  addKey("PROGPLUS", ChannelUp_Key, 0x1E, 8);
+  addKey("PROGMINUS", ChannelDown_Key, 0x1F, 8);
+
+  addKey("NEXT", Next_Key, 0x20, 8);
+  addKey("PREVIOUS", Previous_Key, 0x21, 8);
+  addKey("SLOW", Slow_Key, 0x22, 8);
+  addKey("FORWARD", FastForward_Key, 0x28, 8);
+  addKey("REWIND", Rewind_Key, 0x29, 8);
   addKey("SCAN", Scan_Key, 0x2A, 8);
+  addKey("PLAY", Play_Key, 0x2C, 8);
+  addKey("PAUSE", Pause_Key, 0x30, 8);
+  addKey("STOP", Stop_Key, 0x31, 8);
+  addKey("RECORD", Record_Key, 0x37, 8);
+  addKey("REPEATAB", RepeatAB_Key, 0x3B, 8);
+
+  addKey("CLEAR", Clear_Key, 0x41, 8);
+  addKey("TVDVD", Input_Key, 0x43, 8);
+  addKey("SUBTITLE", Captions_Key, 0x4B, 8);
+  addKey("AUDIO", Audio_Key, 0x4E, 8);
+
+  addKey("DISC", Unmapped_Key, 0x54, 8);
+  addKey("UP", Up_Key, 0x58, 8);
+  addKey("DOWN", Down_Key, 0x59, 8);
+  addKey("LEFT", Left_Key, 0x5A, 8);
+  addKey("RIGHT", Right_Key, 0x5B, 8);
+
+  addKey("ANGLE", Angle_Key, 0x85, 8);
+
+  addKey("TC", Unmapped_Key, 0xC8, 8);
+  addKey("EDIT", Unmapped_Key, 0xCF, 8);
+
+  addKey("TUNER", TunerInput_Key, 0xEE, 8);
+
+  addKey("ZOOM", Zoom_Key, 0xF7, 8);
+  addKey("SELECT", Select_Key, 0xFA, 8);
+  addKey("TIMER", Timer_Key, 0xFE, 8);
 }
 
 
index 7cc5651..672ca5e 100644 (file)
@@ -149,6 +149,14 @@ public:
     unsigned int index);
 };
 
+class PhilipsDVD3a: public PhilipsDVD3
+{
+public:
+  PhilipsDVD3a(
+    QObject *guiObject,
+    unsigned int index);
+};
+
 class PhilipsDVD4: public PIRKeysetMetaData
 {
 public:
index db0d632..c6feb48 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -1,15 +1,33 @@
 #include "mainwindow.h"
+#include "pirapplication.h"
 #include <QtGui/QApplication>
 
 int main(int argc, char *argv[])
 {
-  QApplication app(argc, argv);
+//  QApplication app(argc, argv);
+  PIRApplication app(argc, argv);
 
   MainWindow mainWindow;
   mainWindow.setOrientation(MainWindow::ScreenOrientationLockLandscape);
 //  mainWindow.setOrientation(MainWindow::ScreenOrientationAuto);
   mainWindow.showExpanded();
 
+  // Take control over the volume rocker switch:
+  app.setupRockerSwitch(&mainWindow);
+  app.setupRockerSwitch(mainWindow.getSecondaryWindow());
+
+  app.connect(
+    &app,
+    SIGNAL(decreaseRockerPressed()),
+    &mainWindow,
+    SLOT(selectPrevFavKeyset()));
+
+  app.connect(
+    &app,
+    SIGNAL(increaseRockerPressed()),
+    &mainWindow,
+    SLOT(selectNextFavKeyset()));
+
   // A connection to perform any final cleanup work:
   app.connect(
     &app,
index 3a88a6f..f36cfc1 100644 (file)
@@ -1059,3 +1059,41 @@ void MainWindow::stopRepeating()
   stopRepeatingFlag = true;
 }
 
+
+QWidget *MainWindow::getSecondaryWindow()
+{
+  return secondaryForm;
+}
+
+
+void MainWindow::selectPrevFavKeyset()
+{
+  int position = ui->favoriteKeysetsWidget->currentRow();
+
+  --position;
+  if (position < 0)
+  {
+    position = ui->favoriteKeysetsWidget->count() - 1;
+  }
+
+  ui->favoriteKeysetsWidget->setCurrentRow(
+    position,
+    QItemSelectionModel::ClearAndSelect);
+}
+
+
+void MainWindow::selectNextFavKeyset()
+{
+  int size = ui->favoriteKeysetsWidget->count();
+  int position = ui->favoriteKeysetsWidget->currentRow();
+
+  ++position;
+  if (position == size)
+  {
+    position = 0;
+  }
+
+  ui->favoriteKeysetsWidget->setCurrentRow(
+    position,
+    QItemSelectionModel::ClearAndSelect);
+}
index 238c5bd..514b3db 100644 (file)
@@ -41,6 +41,9 @@ public:
 
   void stopRepeating();
 
+  // This is a bit of a hack:
+  QWidget *getSecondaryWindow();
+
 signals:
   // Main keys
   void powerEnabled(bool);
@@ -159,6 +162,9 @@ public slots:
   void receivedExternalWarning(
     const char *warning);
 
+  void selectPrevFavKeyset();
+  void selectNextFavKeyset();
+
 private slots:
   // Main tab slots:
   void on_powerButton_pressed();
index 3d41001..03c81e6 100644 (file)
@@ -100,7 +100,10 @@ SOURCES += main.cpp mainwindow.cpp \
     keysets/saba.cpp \
     keysets/sky.cpp \
     protocols/rc6skyprotocol.cpp \
-    protocols/thomsonprotocol.cpp
+    protocols/thomsonprotocol.cpp \
+    keysets/digitalstream.cpp \
+    pirapplication.cpp \
+    keysets/emerson.cpp
 HEADERS += mainwindow.h \
     pirkeynames.h \
     pirmakenames.h \
@@ -177,7 +180,10 @@ HEADERS += mainwindow.h \
     keysets/saba.h \
     keysets/sky.h \
     protocols/rc6skyprotocol.h \
-    protocols/thomsonprotocol.h
+    protocols/thomsonprotocol.h \
+    keysets/digitalstream.h \
+    pirapplication.h \
+    keysets/emerson.h
 FORMS += mainwindow.ui \
     pirdocumentationform.ui \
     piraboutform.ui \
index 05576b3..ea0f5eb 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by Qt Creator 2.4.1, 2012-02-12T23:18:04. -->
+<!-- Written by Qt Creator 2.4.1, 2012-02-14T00:05:31. -->
 <qtcreator>
  <data>
   <variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -79,7 +79,7 @@
       <value type="QString" key="ProjectExplorer.ProcessStep.Arguments">dpkg-buildpackage -sa -S -uc -us</value>
       <value type="QString" key="ProjectExplorer.ProcessStep.Command">/Users/john/QtSDK/Maemo/4.6.2/bin/mad</value>
       <value type="bool" key="ProjectExplorer.ProcessStep.Enabled">true</value>
-      <value type="QString" key="ProjectExplorer.ProcessStep.WorkingDirectory">/Users/john/Develop/n900/pierogi-0.6.2</value>
+      <value type="QString" key="ProjectExplorer.ProcessStep.WorkingDirectory">/Users/john/Develop/n900/pierogi-0.6.3</value>
       <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Process Step</value>
       <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
       <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.ProcessStep</value>
       <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
       <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">MaemoMountAndInstallDeployStep</value>
       <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedFiles">
-       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_5_0_armel.deb</value>
-       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_5_armel.deb</value>
-       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_6_2_armel.deb</value>
-       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_6_1_armel.deb</value>
        <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_4_armel.deb</value>
-       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_6_0_armel.deb</value>
-       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_3_armel.deb</value>
-       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_2_armel.deb</value>
-       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_1_armel.deb</value>
-       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_0_1_armel.deb</value>
-       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_0_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_5_1_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_6_1_armel.deb</value>
        <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_5_3_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_6_3_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_1_armel.deb</value>
        <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_7_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_3_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_5_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_5_0_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_0_1_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_6_0_armel.deb</value>
        <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_5_2_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_6_2_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_0_armel.deb</value>
        <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_0_1_armel.deb</value>
        <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_6_armel.deb</value>
-       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_5_1_armel.deb</value>
+       <value type="QString">/Users/john/Develop/n900/pierogi-build-maemo-Qt_for_Fremantle_PR1_3_Devices__Qt_SDK__Release/pierogi_0_1_2_armel.deb</value>
       </valuelist>
       <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedHosts">
        <value type="QString">192.168.0.15</value>
        <value type="QString">192.168.0.15</value>
        <value type="QString">192.168.0.15</value>
        <value type="QString">192.168.0.15</value>
+       <value type="QString">localhost</value>
+       <value type="QString">192.168.0.15</value>
        <value type="QString">192.168.0.15</value>
        <value type="QString">192.168.0.15</value>
        <value type="QString">192.168.0.15</value>
        <value type="QString">192.168.0.15</value>
-       <value type="QString">localhost</value>
        <value type="QString">192.168.0.15</value>
        <value type="QString">192.168.0.15</value>
       </valuelist>
        <value type="QString"></value>
        <value type="QString"></value>
        <value type="QString"></value>
+       <value type="QString"></value>
       </valuelist>
       <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedTimes">
-       <value type="QDateTime">2012-02-03T10:04:34</value>
-       <value type="QDateTime">2012-01-23T09:47:37</value>
-       <value type="QDateTime">2012-02-12T23:16:00</value>
-       <value type="QDateTime">2012-02-12T23:10:44</value>
        <value type="QDateTime">2012-01-19T22:18:07</value>
-       <value type="QDateTime">2012-02-11T18:03:15</value>
-       <value type="QDateTime">2012-01-17T13:21:05</value>
-       <value type="QDateTime">2012-01-17T12:19:28</value>
-       <value type="QDateTime">2012-01-17T00:15:23</value>
-       <value type="QDateTime">2012-01-14T13:11:32</value>
-       <value type="QDateTime">2012-01-17T00:03:13</value>
+       <value type="QDateTime">2012-02-06T17:22:16</value>
+       <value type="QDateTime">2012-02-12T23:10:44</value>
        <value type="QDateTime">2012-02-09T18:12:21</value>
+       <value type="QDateTime">2012-02-13T23:56:12</value>
+       <value type="QDateTime">2012-01-17T00:15:23</value>
        <value type="QDateTime">2012-01-30T20:23:06</value>
-       <value type="QDateTime">2012-02-08T20:29:28</value>
+       <value type="QDateTime">2012-01-17T13:21:05</value>
+       <value type="QDateTime">2012-01-23T09:47:37</value>
+       <value type="QDateTime">2012-02-03T10:04:34</value>
        <value type="QDateTime">2012-01-01T15:35:35</value>
+       <value type="QDateTime">2012-02-11T18:03:15</value>
+       <value type="QDateTime">2012-02-08T20:29:28</value>
+       <value type="QDateTime">2012-02-13T22:02:56</value>
+       <value type="QDateTime">2012-01-17T00:03:13</value>
+       <value type="QDateTime">2012-01-14T13:11:32</value>
        <value type="QDateTime">2012-01-25T13:42:55</value>
-       <value type="QDateTime">2012-02-06T17:22:16</value>
+       <value type="QDateTime">2012-01-17T12:19:28</value>
       </valuelist>
      </valuemap>
      <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">3</value>
diff --git a/pirapplication.cpp b/pirapplication.cpp
new file mode 100644 (file)
index 0000000..66d240a
--- /dev/null
@@ -0,0 +1,61 @@
+#include "pirapplication.h"
+
+#include <QWidget>
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <QX11Info>
+
+PIRApplication::PIRApplication(
+  int &argc,
+  char **argv)
+  : QApplication(argc, argv)
+{
+}
+
+
+void PIRApplication::setupRockerSwitch(QWidget *window)
+{
+  // free the rocker switch from the volume controls:
+  unsigned long val = 1;
+
+  Atom atom = XInternAtom(QX11Info::display(), "_HILDON_ZOOM_KEY_ATOM", 0);
+
+  XChangeProperty( 
+    QX11Info::display(),
+    window->winId(),
+    atom,
+    XA_INTEGER,
+    32,
+    PropModeReplace,
+    (unsigned char *) &val,
+    1);
+}
+
+
+bool PIRApplication::x11EventFilter(
+  XEvent *event)
+{
+  // Return true means we will consume the event here; return false means
+  // letting the event continue to be passed up the chain.
+
+  if (event->type == KeyPress)
+  {
+    // Check for function key 7 (keycode 73) or for "Zoom Out" button:
+    if (
+      event->xkey.keycode == 73 ||
+      event->xkey.keycode == QKeySequence::ZoomOut)
+    {
+      emit decreaseRockerPressed();
+      return true;
+    }
+    else if (
+      event->xkey.keycode == 74 ||
+      event->xkey.keycode == QKeySequence::ZoomIn)
+    {
+      emit increaseRockerPressed();
+      return true;
+    }
+  }
+
+  return false;
+}
diff --git a/pirapplication.h b/pirapplication.h
new file mode 100644 (file)
index 0000000..16d4194
--- /dev/null
@@ -0,0 +1,27 @@
+#ifndef PIRAPPLICATION_H
+#define PIRAPPLICATION_H
+
+#include <QApplication>
+
+class QWidget;
+
+class PIRApplication: public QApplication
+{
+  Q_OBJECT
+public:
+  PIRApplication(
+    int &argc,
+    char **argv);
+
+  void setupRockerSwitch(
+    QWidget *window);
+
+  virtual bool x11EventFilter(
+    XEvent *event);
+
+signals:
+  void increaseRockerPressed();
+  void decreaseRockerPressed();
+};
+
+#endif // PIRAPPLICATION_H
index 7c50d61..0f5c6c6 100644 (file)
@@ -180,6 +180,7 @@ enum PIRKeyName{
   DVRInput_Key,
   OpticalInput_Key,
   DigitalCoaxInput_Key,
+  USBInput_Key,
 
   // "Program" Controls:
   Program_Key,
index ba75e37..e769dd1 100644 (file)
 #include "keysets/bose.h"
 #include "keysets/daewoo.h"
 #include "keysets/denon.h"
+#include "keysets/digitalstream.h"
 #include "keysets/ei.h"
 #include "keysets/elgato.h"
+#include "keysets/emerson.h"
 #include "keysets/goldstar.h"
 #include "keysets/grundig.h"
 #include "keysets/hauppauge.h"
@@ -71,6 +73,7 @@ PIRKeysetManager::PIRKeysetManager(
   populateKeyset(new AcerPC1(guiObject, counter++));
 
   populateKeyset(new AdmiralTV1(guiObject, counter++));
+  populateKeyset(new AdmiralTV2(guiObject, counter++));
   populateKeyset(new AdmiralVCR1(guiObject, counter++));
 
   populateKeyset(new AiwaVCR1(guiObject, counter++));
@@ -125,10 +128,15 @@ PIRKeysetManager::PIRKeysetManager(
   populateKeyset(new DenonAudio3(guiObject, counter++));
   populateKeyset(new DenonAudio4(guiObject, counter++));
 
+  populateKeyset(new DigitalStreamReceiver(guiObject, counter++));
+
   populateKeyset(new EiTV1(guiObject, counter++));
 
   populateKeyset(new ElgatoEyeTV1(guiObject, counter++));
 
+  populateKeyset(new EmersonTV1(guiObject, counter++));
+  populateKeyset(new EmersonDVD1(guiObject, counter++));
+
   populateKeyset(new GoldStarTV1(guiObject, counter++));
   populateKeyset(new GoldStarTV2(guiObject, counter++));
   populateKeyset(new GoldStarVCR1(guiObject, counter++));
@@ -256,6 +264,7 @@ PIRKeysetManager::PIRKeysetManager(
   populateKeyset(new PhilipsDVD1d(guiObject, counter++));
   populateKeyset(new PhilipsDVD2(guiObject, counter++));
   populateKeyset(new PhilipsDVD3(guiObject, counter++));
+  populateKeyset(new PhilipsDVD3a(guiObject, counter++));
   populateKeyset(new PhilipsDVD4(guiObject, counter++));
   populateKeyset(new PhilipsVCR1(guiObject, counter++));
   populateKeyset(new PhilipsVCR1a(guiObject, counter++));
index 7338b8a..d4c8990 100644 (file)
@@ -12,8 +12,10 @@ PIRMakeMgr::PIRMakeMgr()
   makes[Bose_Make] = "Bose";
   makes[Daewoo_Make] = "Daewoo";
   makes[Denon_Make] = "Denon";
+  makes[DigitalStream_Make] = "Digital Stream";
   makes[Ei_Make] = "Ei";
   makes[Elgato_Make] = "Elgato";
+  makes[Emerson_Make] = "Emerson";
   makes[GoldStar_Make] = "GoldStar";
   makes[Grundig_Make] = "Grundig";
   makes[Hauppauge_Make] = "Hauppauge";
index 9f0692d..fab1ffe 100644 (file)
@@ -13,8 +13,10 @@ enum PIRMakeName{
   Bose_Make,
   Daewoo_Make,
   Denon_Make,
+  DigitalStream_Make,
   Ei_Make,
   Elgato_Make,
+  Emerson_Make,
   GoldStar_Make,
   Grundig_Make,
   Hauppauge_Make,
index 9cd34db..4949d83 100644 (file)
@@ -1,3 +1,10 @@
+pierogi (0.6.3) unstable; urgency=low
+  * Mapped the volume rocker to move between favorite keysets
+  * Added new keysets for Digital Stream and Emerson
+  * Added one new keyset to Admiral, cleaned up Philips a bit
+
+ -- John Pietrzak <jpietrzak8@gmail.com>  Mon, 13 Feb 2012 23:50:01 -0500
+
 pierogi (0.6.2) unstable; urgency=low
   * Fixed an embarrasing bug in the LG keysets
   * Added a few more Daewoo keysets
index 8ae4c65..3f0aabb 100644 (file)
@@ -11,8 +11,8 @@ Architecture: armel
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Universal Infrared (IR) Remote Control for N900
  Pierogi is a Universal Infrared Remote Control app for the Nokia N900.  It is independent from the LIRC server, and stores all configuration info internally.
-XB-Maemo-Upgrade-Description: Small bug fix, more keysets
- An embarrasing bug in the LG keysets has been fixed.  Also, added more Daewoo keysets, and made a first pass at Sky, WD, and Saba keysets.
+XB-Maemo-Upgrade-Description: Remapped volume rocker, more keysets
+ The volume rocker buttons have been remapped to move Pierogi back and forth through the list of favorite keysets.  Also, added keysets for Digital Stream, Emerson, and one new Admiral keyset.
 XSBC-Bugtracker: https://garage.maemo.org/tracker/?func=add&group_id=2286&atid=7641
 XB-Maemo-Display-Name: Pierogi
 XB-Maemo-Icon-26: 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
index 29be5c5..ac5db8a 100755 (executable)
Binary files a/www/MainTab.png and b/www/MainTab.png differ
index d505d85..d17051f 100644 (file)
@@ -81,8 +81,8 @@ If you have a particular keyset you use often, it can be stored in the
 
 <img src="MainTab.png">
 
-<p>The Main tab contains just the power, volume, and channel buttons.  It is
-intended to be a quick way to get to the most important, commonly used
+<p>The Main tab contains just the power, volume, mute, and channel buttons.
+It is intended to be a quick way to get to the most important, commonly used
 controls.  The name of the current keyset is also provided in this tab.</p>
 
 <h4>Utility Tab</h4>
@@ -90,7 +90,7 @@ controls.  The name of the current keyset is also provided in this tab.</p>
 <img src="UtilityTab.png">
 
 <p>The Utility tab contains a selection of commonly useful controls, such as
-"Mute", "Sleep", "Input", "Closed Captions / Subtitles", and the color buttons.
+"Sleep", "Input", "Closed Captions / Subtitles", and the color buttons.
 This tab is intended to be a quick way to reach the most frequently used
 buttons; as such, the selection may be updated in future versions of Pierogi.
 </p>