Version 1.0 of Pierogi, "A Fistful of Pierogies"
authorJohn Pietrzak <john@pietrzak.org>
Fri, 24 Feb 2012 16:29:11 +0000 (11:29 -0500)
committerJohn Pietrzak <john@pietrzak.org>
Fri, 24 Feb 2012 16:29:11 +0000 (11:29 -0500)
As Pierogi seems fairly stable and usable at this point, I'm declaring this
as version "1.0".

12 files changed:
doc/about.html
doc/documentation.html
keysets/hyundai.cpp [new file with mode: 0644]
keysets/hyundai.h [new file with mode: 0644]
pierogi.pro
pierogi.pro.user
pirkeysetmanager.cpp
pirmakenames.cpp
pirmakenames.h
qtc_packaging/debian_fremantle/changelog
qtc_packaging/debian_fremantle/control
www/index.html

index f23f517..7cfaa7f 100644 (file)
@@ -9,28 +9,21 @@ Pierogi UIRC
 <h2 align="center">A Universal Infrared Remote Control</h2>
 
 <p align="center">
-Version 0.6
+Version 1.0 - <i>A Fistful of Pierogis</i>
 </p>
 
 <p>
-A tasty little app for controlling all your infrared devices.  As of this
-version, the keysets are still limited and mostly untested.  If you find
-problems or if you'd like to see keysets for more devices added, please send
-me a note at <a href="mailto:jpietrzak8@gmail.com">jpietrzak8@gmail.com</a>
-or leave a post on the 
-<a href="https://garage.maemo.org/forum/forum.php?forum_id=7316">
-Pierogi message board</a>.  Thank you!
+A tasty little app for controlling all your infrared devices.  For more
+information, please visit the
+<a href="http://pierogi.garage.maemo.org">Pierogi website</a>.
 </p>
 
 <p>
-For more information, please visit the <a href="http://pierogi.garage.maemo.org">Pierogi website</a>.
-</p>
-
-<p>
-Pierogi is a free open-source program!  Use it however you like.  But if you
-wish to send a few appreciative dollars my way, I do accept
-<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=K697WUWYDLNJA">donations</a>.
-Thank you!
+Pierogi is a free and open-source program!  Use it however you like.  But if
+you wish to send a few appreciative dollars my way, I do accept
+<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=K697WUWYDLNJA">donations</a>.  
+All funds received will be put towards the purchase of a second N900 for
+development work.  Thank you!
 </p>
 
 <p>Copyright (C) 2012 by John Pietrzak.
index 0fe7038..a793cd1 100644 (file)
@@ -28,10 +28,7 @@ Pierogi also follows the classic concept of a universal remote, by having
 a common set of buttons that are reused for each device.  So, for example,
 the "power" button has the same name and is located in the same position,
 no matter what keyset is currently in use -- even if that keyset has a
-different name for "power", or has no "power" command at all.  (Check out
-the <a href="http://en.wikipedia.org/wiki/Universal_remote">Universal
-Remote wiki</a> for a description of universal remote controls, which
-includes a special mention of the N900!)
+different name for "power", or has no "power" command at all.
 </p>
 
 <p>
@@ -113,6 +110,13 @@ Pierogi to use one by simply selecting that keyset from the list.</p>
 <p>A keyset can be removed from the list by selecting it and pressing
 "Remove Selected Keyset".</p>
 
+<p>
+Also note that the volume control keys on the top left side of the N900 can
+be used to step through the list of favorite keysets, no matter what tab
+you are currently using.
+</p>
+
+
 <h3>Select Keyset Window</h3>
 
 <p>The Select Keyset window presents a list of all the keysets currently
diff --git a/keysets/hyundai.cpp b/keysets/hyundai.cpp
new file mode 100644 (file)
index 0000000..d0b6920
--- /dev/null
@@ -0,0 +1,202 @@
+#include "hyundai.h"
+#include "protocols/necprotocol.h"
+
+
+HyundaiDVD1::HyundaiDVD1(
+  unsigned int index)
+  : PIRKeysetMetaData(
+      "DVD Keyset 1",
+      Hyundai_Make,
+      index)
+{
+}
+
+
+void HyundaiDVD1::populateProtocol(
+  QObject *guiObject)
+{
+  if (threadableProtocol)
+  {
+    // Keyset already populated.
+    return;
+  }
+
+  threadableProtocol = new NECProtocol(guiObject, index, true, true);
+
+  setPreData(0xFB00, 16);
+
+  addKey("STANDBY", Power_Key, 0x0C, 8);
+  addKey("OPEN/CLOSE", Eject_Key, 0x0D, 8);
+  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/10", Zero_Key, 0x0B, 8);
+  addKey("10+", DoubleDigit_Key, 0x0A, 8);
+  addKey("GOTO", Unmapped_Key, 0x09, 8);
+  addKey("PROG", Program_Key, 0x1E, 8);
+  addKey("V-MODE", PictureMode_Key, 0x1F, 8);
+  addKey("A-MODE", SoundMode_Key, 0x1C, 8);
+  addKey("SETUP", Menu_Key, 0x1D, 8);
+  addKey("TITLE", DiscTitle_Key, 0x14, 8);
+  addKey("MENU", DiscMenu_Key, 0x15, 8);
+  addKey("AUDIO", Audio_Key, 0x16, 8);
+  addKey("SUBTITLE", Captions_Key, 0x17, 8);
+  addKey("ANGLE", Angle_Key, 0x18, 8);
+  addKey("UP", Up_Key, 0x10, 8);
+  addKey("DOWN", Down_Key, 0x11, 8);
+  addKey("RIGHT", Right_Key, 0x13, 8);
+  addKey("LEFT", Left_Key, 0x12, 8);
+  addKey("ENTER", Select_Key, 0x0E, 8);
+  addKey("STEP", StepForward_Key, 0x19, 8);
+  addKey("REPEAT", Repeat_Key, 0x1A, 8);
+  addKey("A-B", RepeatAB_Key, 0x1B, 8);
+  addKey(">>", FastForward_Key, 0x40, 8);
+  addKey("<<", Rewind_Key, 0x41, 8);
+  addKey(">>|", Next_Key, 0x42, 8);
+  addKey("|<<", Previous_Key, 0x43, 8);
+  addKey("PLAY/PAUSE", Play_Key, 0x44, 8);
+  addKey("PLAY/PAUSE", Pause_Key, 0x44, 8);
+  addKey("STOP", Stop_Key, 0x45, 8);
+  addKey("VOLUME+", VolumeUp_Key, 0x48, 8);
+  addKey("VOLUME-", VolumeDown_Key, 0x4C, 8);
+  addKey("KEY+", Unmapped_Key, 0x49, 8);
+  addKey("KEY-", Unmapped_Key, 0x4D, 8);
+  addKey("VIRTUAL", Unmapped_Key, 0x4A, 8);
+  addKey("OSD", Info_Key, 0x4B, 8);
+  addKey("SLOW", Slow_Key, 0x4E, 8);
+  addKey("ZOOM", Zoom_Key, 0x4F, 8);
+  addKey("MUTE", Mute_Key, 0x50, 8);
+  addKey("L/R/ST", Unmapped_Key, 0x51, 8);
+  addKey("EQ", Unmapped_Key, 0x52, 8);
+  addKey("S_EFFECT", Unmapped_Key, 0x53, 8);
+}
+
+
+HyundaiAudio1::HyundaiAudio1(
+  unsigned int index)
+  : PIRKeysetMetaData(
+      "Audio Keyset 1",
+      Hyundai_Make,
+      index)
+{
+}
+
+
+void HyundaiAudio1::populateProtocol(
+  QObject *guiObject)
+{
+  if (threadableProtocol)
+  {
+    // Keyset already populated.
+    return;
+  }
+
+  threadableProtocol = new NECProtocol(guiObject, index, true, true);
+
+  setPreData(0xFF00, 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, 0x0A, 8);
+  addKey("Power", Power_Key, 0x0C, 8);
+  addKey("Eject", Eject_Key, 0x0D, 8);
+  addKey("Mute", Mute_Key, 0x1E, 8);
+  addKey("Audio", Audio_Key, 0x1F, 8);
+  addKey("Subtitle", Captions_Key, 0x1C, 8);
+  addKey("Angle", Angle_Key, 0x1D, 8);
+  addKey("-/--", DoubleDigit_Key, 0x09, 8);
+  addKey("goto", Unmapped_Key, 0x0B, 8);
+  addKey("Title", DiscTitle_Key, 0x14, 8);
+  addKey("Menu", DiscMenu_Key, 0x15, 8);
+  addKey("Prog", Program_Key, 0x16, 8);
+  addKey("Scan", Scan_Key, 0x17, 8);
+  addKey("Display", Info_Key, 0x18, 8);
+  addKey("Enter", Select_Key, 0x0E, 8);
+  addKey("Left", Left_Key, 0x12, 8);
+  addKey("Right", Right_Key, 0x13, 8);
+  addKey("Up", Up_Key, 0x10, 8);
+  addKey("Down", Down_Key, 0x11, 8);
+  addKey("Setup", Menu_Key, 0x19, 8);
+  addKey("Pause", Pause_Key, 0x1A, 8);
+  addKey("Band", TunerBand_Key, 0x1B, 8);
+  addKey("Play", Play_Key, 0x44, 8);
+  addKey("Stop", Stop_Key, 0x45, 8);
+  addKey(">>", FastForward_Key, 0x40, 8);
+  addKey("<<", Rewind_Key, 0x41, 8);
+  addKey(">>!", Next_Key, 0x42, 8);
+  addKey("!<<", Previous_Key, 0x43, 8);
+  addKey("+vol", VolumeUp_Key, 0x48, 8);
+  addKey("-vol", VolumeDown_Key, 0x4C, 8);
+  addKey("Zoom", Zoom_Key, 0x49, 8);
+  addKey("Repeat", Repeat_Key, 0x4D, 8);
+  addKey("Slow", Slow_Key, 0x4A, 8);
+  addKey("A-B", RepeatAB_Key, 0x4E, 8);
+  addKey("Function", Unmapped_Key, 0x4B, 8);
+  addKey("Step", StepForward_Key, 0x4F, 8);
+}
+
+
+HyundaiTV1::HyundaiTV1(
+  unsigned int index)
+  : PIRKeysetMetaData(
+      "TV/Monitor Keyset 1",
+      Hyundai_Make,
+      index)
+{
+}
+
+
+void HyundaiTV1::populateProtocol(
+  QObject *guiObject)
+{
+  if (threadableProtocol)
+  {
+    // Keyset already populated.
+    return;
+  }
+
+  threadableProtocol = new NECProtocol(guiObject, index, true, false);
+
+  setPreData(0x03AA, 16);
+
+  addKey("POWER", Power_Key, 0x10, 8);
+  addKey("SOURCE", Input_Key, 0x0E, 8);
+  addKey("1", One_Key, 0x01, 8);
+  addKey("2", Two_Key, 0x02, 8);
+  addKey("3", Three_Key, 0x03, 8);
+  addKey("4", Four_Key, 0x04, 8);
+  addKey("5", Five_Key, 0x05, 8);
+  addKey("6", Six_Key, 0x06, 8);
+  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("DISPLAY", Info_Key, 0x14, 8);
+  addKey("PREVIOUS_CH", PrevChannel_Key, 0x0A, 8);
+  addKey("MUTE", Mute_Key, 0x0F, 8);
+  addKey("EXIT", Exit_Key, 0x1F, 8);
+  addKey("CH_UP", ChannelUp_Key, 0x1C, 8);
+  addKey("CH_UP", Up_Key, 0x1C, 8);
+  addKey("CH_DOWN", ChannelDown_Key, 0x1D, 8);
+  addKey("CH_DOWN", Down_Key, 0x1D, 8);
+  addKey("VOL_UP", VolumeUp_Key, 0x20, 8);
+  addKey("VOL_UP", Right_Key, 0x20, 8);
+  addKey("VOL_DOWN", VolumeDown_Key, 0x21, 8);
+  addKey("VOL_DOWN", Left_Key, 0x21, 8);
+  addKey("MENU", Menu_Key, 0x12, 8);
+  addKey("AUTO/CC", Captions_Key, 0x13, 8);
+  addKey("CH_SEARCH", Scan_Key, 0x1E, 8);
+}
diff --git a/keysets/hyundai.h b/keysets/hyundai.h
new file mode 100644 (file)
index 0000000..6378992
--- /dev/null
@@ -0,0 +1,38 @@
+#ifndef HYUNDAI_H
+#define HYUNDAI_H
+
+#include "pirkeysetmetadata.h"
+
+class QObject;
+
+class HyundaiDVD1: public PIRKeysetMetaData
+{
+public:
+  HyundaiDVD1(
+    unsigned int index);
+
+  virtual void populateProtocol(
+    QObject *guiObject);
+};
+
+class HyundaiAudio1: public PIRKeysetMetaData
+{
+public:
+  HyundaiAudio1(
+    unsigned int index);
+
+  virtual void populateProtocol(
+    QObject *guiObject);
+};
+
+class HyundaiTV1: public PIRKeysetMetaData
+{
+public:
+  HyundaiTV1(
+    unsigned int index);
+
+  virtual void populateProtocol(
+    QObject *guiObject);
+};
+
+#endif // HYUNDAI_H
index cfdd504..742ccdc 100644 (file)
@@ -132,7 +132,8 @@ SOURCES += main.cpp mainwindow.cpp \
     keysets/united.cpp \
     keysets/foxtel.cpp \
     keysets/nad.cpp \
-    keysets/universum.cpp
+    keysets/universum.cpp \
+    keysets/hyundai.cpp
 HEADERS += mainwindow.h \
     pirkeynames.h \
     pirmakenames.h \
@@ -239,7 +240,8 @@ HEADERS += mainwindow.h \
     keysets/united.h \
     keysets/foxtel.h \
     keysets/nad.h \
-    keysets/universum.h
+    keysets/universum.h \
+    keysets/hyundai.h
 FORMS += mainwindow.ui \
     pirdocumentationform.ui \
     piraboutform.ui \
index 40203ea..41589e6 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by Qt Creator 2.4.1, 2012-02-23T11:46:34. -->
+<!-- Written by Qt Creator 2.4.1, 2012-02-24T11:27:58. -->
 <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">false</value>
-      <value type="QString" key="ProjectExplorer.ProcessStep.WorkingDirectory">/Users/john/Develop/n900/pierogi-0.6.10</value>
+      <value type="QString" key="ProjectExplorer.ProcessStep.WorkingDirectory">/Users/john/Develop/n900/pierogi-0.6.11</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.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_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_1_0_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_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_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_6_11_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_8_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_4_armel.deb</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>
        <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>
       </valuelist>
       <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedRemotePaths">
        <value type="QString"></value>
        <value type="QString"></value>
        <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-01-19T22:18:07</value>
+       <value type="QDateTime">2012-02-24T09:51:59</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-11T18:03:15</value>
        <value type="QDateTime">2012-02-08T20:29:28</value>
        <value type="QDateTime">2012-02-16T22:03:28</value>
+       <value type="QDateTime">2012-02-23T12:24:04</value>
        <value type="QDateTime">2012-02-19T19:25:47</value>
        <value type="QDateTime">2012-02-13T22:02:56</value>
        <value type="QDateTime">2012-02-14T21:42:07</value>
index e8619c6..a9d6267 100644 (file)
@@ -33,6 +33,7 @@
 #include "keysets/hp.h"
 #include "keysets/huawei.h"
 #include "keysets/humax.h"
+#include "keysets/hyundai.h"
 #include "keysets/jvc.h"
 #include "keysets/kenwood.h"
 #include "keysets/lg.h"
@@ -255,6 +256,10 @@ PIRKeysetManager::PIRKeysetManager()
   setupKeyset(new HumaxReceiver2(counter++));
   setupKeyset(new HumaxReceiver3(counter++));
 
+  setupKeyset(new HyundaiDVD1(counter++));
+  setupKeyset(new HyundaiAudio1(counter++));
+  setupKeyset(new HyundaiTV1(counter++));
+
   setupKeyset(new JVCSat1(counter++));
   setupKeyset(new JVCSat2(counter++));
   setupKeyset(new JVCVCR1(counter++));
index cb21475..ce311cb 100644 (file)
@@ -34,6 +34,7 @@ PIRMakeMgr::PIRMakeMgr()
   makes[HP_Make] = "HP";
   makes[Huawei_Make] = "Huawei";
   makes[Humax_Make] = "Humax";
+  makes[Hyundai_Make] = "Hyundai";
   makes[JVC_Make] = "JVC";
   makes[Kenwood_Make] = "Kenwood";
   makes[LG_Make] = "LG";
index 9cc15b1..59bb0da 100644 (file)
@@ -35,6 +35,7 @@ enum PIRMakeName{
   HP_Make,
   Huawei_Make,
   Humax_Make,
+  Hyundai_Make,
   JVC_Make,
   Kenwood_Make,
   LG_Make,
index 84c25ac..df784ff 100644 (file)
@@ -1,3 +1,9 @@
+pierogi (1.0.0) unstable; urgency=low
+  * Pierogi appears fairly stable and useful at this point.  So, I will declare it to have now reached version "1.0", before starting any radical changes to the gui.  (I'm labeling the 1.0 version "A Fistful of Pierogis". :) )
+  * First pass at a keyset for Hyundai.
+
+ -- John Pietrzak <jpietrzak8@gmail.com>  Fri, 24 Feb 2012 09:11:55 -0500
+
 pierogi (0.6.11) unstable; urgency=low
   * Fix for a nasty bug with the volume-rocker keys (thanks sixwheeledbeast!).
   * First pass at keysets for Foxtel, NAD, and Universum.
index 37ae1b3..f5975bc 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: Fix volume rocker switch
- This update fixes a nasty bug with the volume rocker switch.  Also, new keysets for Foxtel, NAD, and Universum.
+XB-Maemo-Upgrade-Description: Version 1.0
+ At this point, Pierogi is fairly stable and usable.  So, I'm going to declare this as version 1.0.  Look for significant changes to both the GUI and the underlying code in the future!
 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 8c08233..965567d 100644 (file)
@@ -171,6 +171,12 @@ Pierogi to use one by simply selecting that keyset from the list.</p>
 <p>A keyset can be removed from the list by selecting it and pressing
 "Remove Selected Keyset".</p>
 
+<p>
+Also note that the volume control keys on the top left side of the N900 can
+also be used to step through the list of favorite keysets, no matter what tab
+you are currently on.
+</p>
+
 <h3>Select Keyset Window</h3>
 
 <img src="SelectKeysetWindow.png">