Files
recycled-ni-neutrino/src/system/lastchannel.h
[CST] Focus 3f30dcd4da Experimental: save/restore channel list mode for history zaps
git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@1870 e54a6e83-5905-42d5-8d5c-058d10e6a962


Origin commit data
------------------
Commit: a9cb9c4733
Author: [CST] Focus <focus.cst@gmail.com>
Date: 2011-11-22 (Tue, 22 Nov 2011)
2011-11-22 09:49:51 +00:00

62 lines
1.3 KiB
C++

/*
DBoX2 -- Projekt
(c) 2001 rasc
Lizenz: GPL
Lastchannel History buffer
Einfache Klasse fuer schnelles Zappen zum letzten Kanal.
Ggf. laesst sich damit ein kleines ChannelHistory-Menue aufbauen-
Das ganze ist als sich selbst ueberschreibender Ringpuffer realisiert,
welcher nach dem LIFO-prinzip wieder ausgelesen wird.
Es wird aber gecheckt, ob ein Neuer Wert ein Mindestzeitabstand zum alten
vorherigen Wert hat, damit bei schnellem Hochzappen, die "Skipped Channels"
nicht gespeichert werden.
*/
#ifndef SEEN_LastChannel
#define SEEN_LastChannel
#include <zapit/client/zapitclient.h>
#include <list>
class CLastChannel
{
private:
struct _LastCh
{
int channel;
t_channel_id channel_id;
unsigned long timestamp;
int channel_mode;
};
std::list<_LastCh> lastChannels;
unsigned long secs_diff_before_store;
unsigned int maxSize;
bool shallRemoveEqualChannel;
public:
CLastChannel (void);
void clear (void);
void store (int channelnr, t_channel_id channel_id, bool forceStoreToLastChannels = false);
t_channel_id getlast (int n);
unsigned int size () const;
void clear_storedelay (void);
void set_store_difftime (int secs);
int get_store_difftime (void) const;
int get_mode(t_channel_id channel_id);
bool set_mode(t_channel_id channel_id);
};
#endif