vdr 2.6.3
Macros | Functions | Variables
vdr.c File Reference
#include <getopt.h>
#include <grp.h>
#include <langinfo.h>
#include <locale.h>
#include <malloc.h>
#include <pwd.h>
#include <signal.h>
#include <stdlib.h>
#include <sys/capability.h>
#include <sys/prctl.h>
#include <termios.h>
#include <unistd.h>
#include "args.h"
#include "audio.h"
#include "channels.h"
#include "config.h"
#include "cutter.h"
#include "device.h"
#include "diseqc.h"
#include "dvbdevice.h"
#include "eitscan.h"
#include "epg.h"
#include "i18n.h"
#include "interface.h"
#include "keys.h"
#include "libsi/si.h"
#include "lirc.h"
#include "menu.h"
#include "osdbase.h"
#include "plugin.h"
#include "recording.h"
#include "shutdown.h"
#include "skinclassic.h"
#include "skinlcars.h"
#include "skinsttng.h"
#include "sourceparams.h"
#include "sources.h"
#include "status.h"
#include "svdrp.h"
#include "themes.h"
#include "timers.h"
#include "tools.h"
#include "transfer.h"
#include "videodir.h"

Go to the source code of this file.

Macros

#define MINCHANNELWAIT   10
 
#define ACTIVITYTIMEOUT   60
 
#define MEMCLEANUPDELTA   3600
 
#define SHUTDOWNWAIT   300
 
#define SHUTDOWNRETRY   360
 
#define SHUTDOWNFORCEPROMPT   5
 
#define SHUTDOWNCANCELPROMPT   5
 
#define RESTARTCANCELPROMPT   5
 
#define MANUALSTART   600
 
#define CHANNELSAVEDELTA   600
 
#define DEVICEREADYTIMEOUT   30
 
#define MENUTIMEOUT   120
 
#define TIMERCHECKDELTA   10
 
#define TIMERDEVICETIMEOUT   8
 
#define TIMERLOOKAHEADTIME   60
 
#define VPSLOOKAHEADTIME   24
 
#define VPSUPTODATETIME   3600
 
#define EXIT(v)   { ShutdownHandler.Exit(v); goto Exit; }
 
#define dd(a, b)   (*a ? a : b)
 
#define DEFAULTSVDRPPORT   6419
 
#define DEFAULTWATCHDOG   0
 
#define DEFAULTVIDEODIR   VIDEODIR
 
#define DEFAULTCONFDIR   dd(CONFDIR, VideoDirectory)
 
#define DEFAULTARGSDIR   dd(ARGSDIR, "/etc/vdr/conf.d")
 
#define DEFAULTCACHEDIR   dd(CACHEDIR, VideoDirectory)
 
#define DEFAULTRESDIR   dd(RESDIR, ConfigDirectory)
 
#define DEFAULTPLUGINDIR   PLUGINDIR
 
#define DEFAULTLOCDIR   LOCDIR
 
#define DEFAULTEPGDATAFILENAME   "epg.data"
 
#define DELETE_MENU   ((IsInfoMenu &= (Menu == NULL)), delete Menu, Menu = NULL)
 
#define DirectMainFunction(function)
 

Functions

static bool SetUser (const char *User, bool UserDump)
 
static bool DropCaps (void)
 
static bool SetKeepCaps (bool On)
 
static void SignalHandler (int signum)
 
static void Watchdog (int signum)
 
int main (int argc, char *argv[])
 

Variables

static int LastSignal = 0
 

Macro Definition Documentation

◆ ACTIVITYTIMEOUT

#define ACTIVITYTIMEOUT   60

Definition at line 77 of file vdr.c.

◆ CHANNELSAVEDELTA

#define CHANNELSAVEDELTA   600

Definition at line 85 of file vdr.c.

◆ dd

#define dd (   a,
 
)    (*a ? a : b)

◆ DEFAULTARGSDIR

#define DEFAULTARGSDIR   dd(ARGSDIR, "/etc/vdr/conf.d")

◆ DEFAULTCACHEDIR

#define DEFAULTCACHEDIR   dd(CACHEDIR, VideoDirectory)

◆ DEFAULTCONFDIR

#define DEFAULTCONFDIR   dd(CONFDIR, VideoDirectory)

◆ DEFAULTEPGDATAFILENAME

#define DEFAULTEPGDATAFILENAME   "epg.data"

◆ DEFAULTLOCDIR

#define DEFAULTLOCDIR   LOCDIR

◆ DEFAULTPLUGINDIR

#define DEFAULTPLUGINDIR   PLUGINDIR

◆ DEFAULTRESDIR

#define DEFAULTRESDIR   dd(RESDIR, ConfigDirectory)

◆ DEFAULTSVDRPPORT

#define DEFAULTSVDRPPORT   6419

◆ DEFAULTVIDEODIR

#define DEFAULTVIDEODIR   VIDEODIR

◆ DEFAULTWATCHDOG

#define DEFAULTWATCHDOG   0

◆ DELETE_MENU

#define DELETE_MENU   ((IsInfoMenu &= (Menu == NULL)), delete Menu, Menu = NULL)

◆ DEVICEREADYTIMEOUT

#define DEVICEREADYTIMEOUT   30

Definition at line 86 of file vdr.c.

◆ DirectMainFunction

#define DirectMainFunction (   function)
Value:
if (Control)\
Control->Hide();\
Menu = new cMenuMain(function);\
key = kNone; }
@ kNone
Definition: keys.h:55
#define DELETE_MENU

◆ EXIT

#define EXIT (   v)    { ShutdownHandler.Exit(v); goto Exit; }

Definition at line 94 of file vdr.c.

◆ MANUALSTART

#define MANUALSTART   600

Definition at line 84 of file vdr.c.

◆ MEMCLEANUPDELTA

#define MEMCLEANUPDELTA   3600

Definition at line 78 of file vdr.c.

◆ MENUTIMEOUT

#define MENUTIMEOUT   120

Definition at line 87 of file vdr.c.

◆ MINCHANNELWAIT

#define MINCHANNELWAIT   10

Definition at line 76 of file vdr.c.

◆ RESTARTCANCELPROMPT

#define RESTARTCANCELPROMPT   5

Definition at line 83 of file vdr.c.

◆ SHUTDOWNCANCELPROMPT

#define SHUTDOWNCANCELPROMPT   5

Definition at line 82 of file vdr.c.

◆ SHUTDOWNFORCEPROMPT

#define SHUTDOWNFORCEPROMPT   5

Definition at line 81 of file vdr.c.

◆ SHUTDOWNRETRY

#define SHUTDOWNRETRY   360

Definition at line 80 of file vdr.c.

◆ SHUTDOWNWAIT

#define SHUTDOWNWAIT   300

Definition at line 79 of file vdr.c.

◆ TIMERCHECKDELTA

#define TIMERCHECKDELTA   10

Definition at line 88 of file vdr.c.

◆ TIMERDEVICETIMEOUT

#define TIMERDEVICETIMEOUT   8

Definition at line 89 of file vdr.c.

◆ TIMERLOOKAHEADTIME

#define TIMERLOOKAHEADTIME   60

Definition at line 90 of file vdr.c.

◆ VPSLOOKAHEADTIME

#define VPSLOOKAHEADTIME   24

Definition at line 91 of file vdr.c.

◆ VPSUPTODATETIME

#define VPSUPTODATETIME   3600

Definition at line 92 of file vdr.c.

Function Documentation

◆ DropCaps()

static bool DropCaps ( void  )
static

Definition at line 128 of file vdr.c.

Referenced by main().

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 198 of file vdr.c.

References cEITScanner::Active(), cRecordControls::Active(), cThread::Active(), cEITScanner::Activity(), ACTIVITYTIMEOUT, cDevice::ActualDevice(), AddDirectory(), cPluginManager::AddPlugin(), cTimers::AdjustSpawnedTimers(), cChannel::Apid(), APIVERSION, AssertFreeDiskSpace(), cControl::Attach(), Audios, cDvbDevice::BondDevices(), CamControl(), CamMenuActive(), CamResponsesLoad(), CamSlots, cCountdown::Cancel(), ChannelCamRelations, cRecordControls::ChannelDataModified(), CHANNELMOD_RETUNE, CHANNELSAVEDELTA, cShutdownHandler::CheckManualStart(), CiResourceHandlers, cSchedules::Cleanup(), cSkins::Clear(), cListBase::Clear(), cPlugin::CommandLineHelp(), Commands, cInterface::Confirm(), cShutdownHandler::ConfirmRestart(), cShutdownHandler::ConfirmShutdown(), cControl::Control(), cShutdownHandler::countdown, cDisplayVolume::Create(), cDisplayTracks::Create(), cDisplaySubtitleTracks::Create(), cSkins::Current(), cSetup::CurrentChannel, cDevice::CurrentChannel(), cSetup::CurrentVolume, cDevice::CurrentVolume(), CutRecording(), DEFAULTARGSDIR, DEFAULTCACHEDIR, DEFAULTCONFDIR, DEFAULTEPGDATAFILENAME, DEFAULTLOCDIR, DEFAULTPLUGINDIR, DEFAULTRESDIR, DEFAULTSVDRPPORT, DEFAULTVIDEODIR, DEFAULTWATCHDOG, cRecordingsHandler::DelAll(), DELETE_MENU, cTimers::DeleteExpired(), cPlugin::Description(), cVideoDirectory::Destroy(), cPositioner::DestroyPositioner(), cSetup::DeviceBondings, cDevice::DeviceNumber(), DEVICEREADYTIMEOUT, DirectMainFunction, DirectoryEncoding, DirectoryNameMax, DirectoryOk(), DirectoryPathMax, cSetup::DiSEqC, Diseqcs, cShutdownHandler::DoExit(), cCountdown::Done(), DoneRecordingsPattern, cShutdownHandler::DoShutdown(), cChannel::Dpid(), DropCaps(), dsyslog, EITScanner, cShutdownHandler::EmergencyExitRequested(), EpgHandlers, esyslog, EXIT, cRecordingsHandler::Finished(), cList< T >::First(), Folders, cSetup::FontOsd, tChannelID::FromString(), GenerateIndex(), cKeyMacros::Get(), cArgs::GetArgc(), cArgs::GetArgv(), cChannels::GetChannelsRead(), cDevice::GetDevice(), cDevice::GetDeviceForTransponder(), cShutdownHandler::GetExitCode(), cFont::GetFontFileName(), cControl::GetInfo(), cInterface::GetKey(), cTimers::GetMatch(), cTimers::GetMaxPriority(), cPluginManager::GetPlugin(), cRemote::GetPlugin(), cPositioner::GetPositioner(), cSchedules::GetSchedulesRead(), cTimers::GetTimersRead(), cTimers::GetTimersWrite(), cDevice::HasDecoder(), cPluginManager::HasPlugins(), cDevice::HasProgramme(), cControl::Hide(), cPluginManager::Housekeeping(), I18nInitialize(), cSetup::InitialChannel, cDvbDevice::Initialize(), cPluginManager::InitializePlugins(), cSetup::InitialVolume, InstanceId, Interface, cOsdObject::IsMenu(), ISMODELESSKEY, isnumber(), cDisplayChannel::IsOpen(), cDisplayTracks::IsOpen(), cDisplaySubtitleTracks::IsOpen(), cOsd::IsOpen(), cDevice::IsPrimaryDevice(), ISREALKEY, cDevice::IsTunedToTransponder(), cShutdownHandler::IsUserInactive(), isyslog, k0, k1, k9, k_Plugin, k_Repeat, kAudio, kChanDn, kChannels, kChanPrev, kChanUp, kCommands, kDown, KeyMacros, Keys, kInfo, kLeft, kMenu, kMute, kNext, kNone, kOk, kPause, kPlay, kPlayPause, kPower, kPrev, kRecord, kRecordings, kRight, kSchedule, kSetup, kSubtitles, kTimers, kUp, kUser0, kUser9, kVolDn, kVolUp, cRemote::LastActivity(), cReplayControl::LastReplayed(), LastSignal, cControl::Launch(), cInterface::LearnKeys(), ListGarbageCollector, LIVEPRIORITY, cChannelCamRelations::Load(), cNestedItemList::Load(), cSetup::Load(), cDoneRecordings::Load(), cTimers::Load(), cChannels::Load(), cScrs::Load(), cDiseqcs::Load(), cConfig< T >::Load(), cThemes::Load(), cPluginManager::LoadPlugins(), LOCK_CHANNELS_READ, LOCK_SCHEDULES_READ, cPlugin::MainMenuAction(), cPluginManager::MainThreadHook(), MANUALSTART, MAXDEVICES, cSetup::MaxVideoFileSize, MAXVIDEOFILESIZEDEFAULT, MAXVIDEOFILESIZETS, MEGABYTE, MEMCLEANUPDELTA, cSetup::MenuKeyCloses, MENUTIMEOUT, cSkins::Message(), MINCHANNELWAIT, MINPRIORITY, MINVIDEOFILESIZE, cChannels::ModifiedByUser(), cStatus::MsgChannelChange(), mtError, mtInfo, mtWarning, cPlugin::Name(), cSkin::Name(), cOsdObject::NeedsFastResponse(), cRecordings::NeedsUpdate(), cLircRemote::NewLircRemote(), cList< T >::Next(), NORMALKEY, cChannel::Number(), cDevice::NumDevices(), osBack, osChannels, osCommands, cOsdProvider::OsdSizeChanged(), cSetup::OSDSkin, cSetup::OSDTheme, osEnd, osPause, osPlugin, osRecord, osRecordings, osReplay, osSchedule, osSetup, osStopReplay, osTimers, osUnknown, cSetup::PauseKeyHandling, cRecordControls::PauseLiveVideo(), cMenuMain::PluginOsdObject(), cSchedule::PresentSeenWithin(), cDevice::PrimaryDevice(), cSetup::PrimaryDVB, cRecordControls::Process(), cDisplayVolume::Process(), cDisplayTracks::Process(), cDisplaySubtitleTracks::Process(), cEITScanner::Process(), cOsdObject::ProcessKey(), cSkins::ProcessQueuedMessages(), cListGarbageCollector::Purge(), cRemote::Put(), cRemote::PutMacro(), cSkins::QueueMessage(), cArgs::ReadDirectory(), RecordingCommands, RecordingsHandler, cSetup::RecordKeyHandling, Remotes, cStateKey::Remove(), RemoveDeletedRecordings(), ReportEpgBugFixStats(), cStateKey::Reset(), RESTARTCANCELPROMPT, cShutdownHandler::Retry(), cChannelCamRelations::Save(), cSetup::Save(), cConfig< T >::Save(), Scrs, cPlugin::SetCacheDirectory(), cRecordingUserCommand::SetCommand(), cPlugin::SetConfigDirectory(), cSkins::SetCurrent(), cPluginManager::SetDirectory(), cSchedules::SetEpgDataFileName(), cTimers::SetEvents(), SetKeepCaps(), cThread::SetMainThreadId(), cVideoDirectory::SetName(), cDevice::SetOccupied(), SI::SetOverrideCharacterTable(), cDevice::SetPrimaryDevice(), cPlugin::SetResourceDirectory(), cShutdownHandler::SetRetry(), cShutdownHandler::SetShutdownCommand(), SetSVDRPGrabImageDir(), SetSVDRPPorts(), cListBase::SetSyncStateKey(), SI::SetSystemCharacterTable(), cCharSetConv::SetSystemCharacterTable(), cThemes::SetThemesDirectory(), Setup, cDevice::SetUseDevice(), SetUser(), cShutdownHandler::SetUserInactive(), cShutdownHandler::SetUserInactiveTimeout(), cDevice::SetVolume(), cOsdObject::Show(), cPluginManager::Shutdown(), cDevice::Shutdown(), cRecordControls::Shutdown(), cOsdProvider::Shutdown(), cControl::Shutdown(), SHUTDOWNCANCELPROMPT, SHUTDOWNFORCEPROMPT, ShutdownHandler, SHUTDOWNRETRY, SHUTDOWNWAIT, SignalHandler(), Skins, SourceParams, Sources, cTimers::SpawnPatternTimers(), cSetup::SplitEditedFiles, cCountdown::Start(), cRecordControls::Start(), cThread::Start(), cPluginManager::StartPlugins(), StartSVDRPHandler(), cStateKey::StateChanged(), StateKeySVDRPRemoteTimersPoll, cPluginManager::StopPlugins(), cDevice::StopReplay(), StopSVDRPHandler(), StrToNum(), SVDRPhosts, cDevice::SwitchChannel(), cChannels::SwitchTo(), SysLogLevel, tfActive, tfVps, cSkin::Theme(), cThread::ThreadId(), TIMERCHECKDELTA, TIMERDEVICETIMEOUT, TIMERLOOKAHEADTIME, cDevice::ToggleMute(), tr, cRecordings::Update(), cCountdown::Update(), cOsdProvider::UpdateOsdSize(), cDvbDevice::useDvbDevices, VDRVERSION, cPlugin::Version(), VOLUMEDELTA, cChannel::Vpid(), VPSLOOKAHEADTIME, cSetup::VpsMargin, VPSUPTODATETIME, cCamSlots::WaitForAllCamSlotsReady(), cDevice::WaitForAllDevicesReady(), Watchdog(), and cSetup::ZapTimeout.

◆ SetKeepCaps()

static bool SetKeepCaps ( bool  On)
static

Definition at line 161 of file vdr.c.

Referenced by main().

◆ SetUser()

static bool SetUser ( const char *  User,
bool  UserDump 
)
static

Definition at line 98 of file vdr.c.

References isnumber().

Referenced by main().

◆ SignalHandler()

static void SignalHandler ( int  signum)
static

◆ Watchdog()

static void Watchdog ( int  signum)
static

Definition at line 187 of file vdr.c.

References esyslog.

Referenced by main().

Variable Documentation

◆ LastSignal

int LastSignal = 0
static

Definition at line 96 of file vdr.c.

Referenced by main(), and SignalHandler().