mirror of
https://github.com/tuxbox-neutrino/libstb-hal.git
synced 2025-08-26 23:13:16 +02:00
Linux DVB output for STBs based on Broadcom - replace active pooling by select (ready to write)
Signed-off-by: max_10 <max_10@gmx.de>
This commit is contained in:
@@ -57,6 +57,8 @@ if (debug_level >= level) printf("[%s:%s] " fmt, __FILE__, __FUNCTION__, ## x);
|
||||
#define cMaxSpeed_ff 128 /* fixme: revise */
|
||||
#define cMaxSpeed_fr -320 /* fixme: revise */
|
||||
|
||||
#define MAX_PLAYBACK_DIE_NOW_CALLBACKS 10
|
||||
|
||||
/* ***************************** */
|
||||
/* Varaibles */
|
||||
/* ***************************** */
|
||||
@@ -67,17 +69,30 @@ static int hasThreadStarted = 0;
|
||||
/* ***************************** */
|
||||
/* Prototypes */
|
||||
/* ***************************** */
|
||||
|
||||
static int32_t PlaybackTerminate(Context_t *context);
|
||||
static int8_t dieNow = 0;
|
||||
static PlaybackDieNowCallback playbackDieNowCallbacks[MAX_PLAYBACK_DIE_NOW_CALLBACKS] = {NULL};
|
||||
|
||||
/* ***************************** */
|
||||
/* MISC Functions */
|
||||
/* ***************************** */
|
||||
|
||||
int8_t PlaybackDieNow(int8_t val)
|
||||
{
|
||||
static int8_t dieNow = 0;
|
||||
if (val == 1)
|
||||
if (val == 1 && dieNow == 0)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
dieNow = 1;
|
||||
while (i < MAX_PLAYBACK_DIE_NOW_CALLBACKS)
|
||||
{
|
||||
if (playbackDieNowCallbacks[i] == NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
playbackDieNowCallbacks[i]();
|
||||
i += 1;
|
||||
}
|
||||
}
|
||||
else if (val == 2)
|
||||
{
|
||||
@@ -86,6 +101,32 @@ int8_t PlaybackDieNow(int8_t val)
|
||||
return dieNow;
|
||||
}
|
||||
|
||||
bool PlaybackDieNowRegisterCallback(PlaybackDieNowCallback callback)
|
||||
{
|
||||
bool ret = false;
|
||||
if (callback)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
while (i < MAX_PLAYBACK_DIE_NOW_CALLBACKS)
|
||||
{
|
||||
if (playbackDieNowCallbacks[i] == callback)
|
||||
{
|
||||
ret = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (playbackDieNowCallbacks[i] == NULL)
|
||||
{
|
||||
playbackDieNowCallbacks[i] = callback;
|
||||
ret = true;
|
||||
break;
|
||||
}
|
||||
i += 1;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* **************************** */
|
||||
/* Supervisor Thread */
|
||||
/* **************************** */
|
||||
|
Reference in New Issue
Block a user