Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: VDR developer version 1.3.15



I demand that Carsten Koch may or may not have written...

> Jacek Popławski wrote:
>> On Mon, Nov 01, 2004 at 04:29:52PM +0100, Klaus Schmidinger wrote:
>>> - The "Channels" menu can now be sorted "by number" (default), "by name"
>>>   and "by provider". While in the "Channels" menu, pressing the '0' key
>>>   switches through these modes.
>> Finally! :)

> Now the same for the "Recordings" menu, please!   :-)

<AOL> - add sort configuration to one of the settings menus?

Here's a patch which provides a fourth sort option: by provider then number,
which is useful when one of the broadcasters uses names such as "BBC ONE" ;-)

-- 
| Darren Salt | d youmustbejoking,demon,co,uk | nr. Ashington,
| Debian,     | s zap,tartarus,org            | Northumberland
| RISC OS     | @                             | Toon Army
|   I don't ask for much, just untold riches...

It is better to be deceived by a friend than to suspect him.
diff -urNad vdr-1.3.15/menu.c /tmp/dpep.ZNMSNK/vdr-1.3.15/menu.c
--- vdr-1.3.15/menu.c	2004-11-03 02:46:05.000000000 +0000
+++ /tmp/dpep.ZNMSNK/vdr-1.3.15/menu.c	2004-11-03 02:46:47.000000000 +0000
@@ -328,14 +328,14 @@
 
 class cMenuChannelItem : public cOsdItem {
 public:
-  enum eChannelSortMode { csmNumber, csmName, csmProvider };
+  enum eChannelSortMode { csmNumber, csmName, csmProvider, csmProviderNumber };
 private:
   static eChannelSortMode sortMode;
   cChannel *channel;
 public:
   cMenuChannelItem(cChannel *Channel);
   static void SetSortMode(eChannelSortMode SortMode) { sortMode = SortMode; }
-  static void IncSortMode(void) { sortMode = eChannelSortMode((sortMode == csmProvider) ? csmNumber : sortMode + 1); }
+  static void IncSortMode(void) { sortMode = eChannelSortMode(sortMode == csmProviderNumber ? csmNumber : sortMode + 1); }
   virtual int Compare(const cListObject &ListObject) const;
   virtual void Set(void);
   cChannel *Channel(void) { return channel; }
@@ -356,9 +356,9 @@
 {
   cMenuChannelItem *p = (cMenuChannelItem *)&ListObject;
   int r = -1;
-  if (sortMode == csmProvider)
+  if (sortMode == csmProvider || sortMode == csmProviderNumber)
      r = strcoll(channel->Provider(), p->channel->Provider());
-  if (sortMode == csmName || r == 0)
+  if (sortMode == csmName || (r == 0 && sortMode != csmProviderNumber))
      r = strcoll(channel->Name(), p->channel->Name());
   if (sortMode == csmNumber || r == 0)
      r = channel->Number() - p->channel->Number();

Home | Main Index | Thread Index