29 return d->PlayPes(Data, Length, VideoOnly);
30 esyslog(
"ERROR: attempt to use cPlayer::PlayPes() without attaching to a cDevice!");
73#define CONTROL_LOCK_TIMEOUT 100
79 *LockedOtherwise =
false;
84 if (ControlMutexLock.
Lock(&
mutex, Timeout, LockedOtherwise)) {
static cControl * Control(cMutexLock &MutexLock, bool Hidden=false, bool *LockedOtherwise=NULL)
Returns the current replay control (if any) in case it is currently visible.
virtual cString GetHeader(void)
This can be used by players that don't play a cRecording, but rather do something completely differen...
static void Shutdown(void)
static cControl * control
virtual cOsdObject * GetInfo(void)
Returns an OSD object that displays information about the currently played programme.
virtual const cRecording * GetRecording(void)
Returns the cRecording that is currently being replayed, or NULL if this player is not playing a cRec...
virtual ~cControl() override
static void Launch(cControl *Control)
cControl(cPlayer *Player, bool Hidden=false)
static cDevice * PrimaryDevice(void)
Returns the primary device.
bool Lock(cMutex *Mutex, int TimeoutMs=0, bool *TimedOut=NULL)
Returns true if the mutex was successfully locked.
cOsdObject(bool FastResponse=false)
std::atomic< cDevice * > device
int PlayPes(const uchar *Data, int Length, bool VideoOnly=false)
cPlayer(ePlayMode PlayMode=pmAudioVideo)
int QueueMessage(eMessageType Type, const char *s, int Seconds=0, int Timeout=0)
Like Message(), but this function may be called from a background thread.
static tThreadId IsMainThread(void)
#define CONTROL_LOCK_TIMEOUT