vdr  2.2.0
Macros | Functions | Variables
vdr.c File Reference
#include <getopt.h>
#include <grp.h>
#include <langinfo.h>
#include <locale.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 "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 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 DEPRECATED_VDR_CHARSET_OVERRIDE
 
#define DELETE_MENU   ((IsInfoMenu &= (Menu == NULL)), delete Menu, Menu = NULL)
 
#define DirectMainFunction(function)
 

Functions

static bool SetUser (const char *UserName, 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

#define ACTIVITYTIMEOUT   60

Definition at line 75 of file vdr.c.

Referenced by main().

#define CHANNELSAVEDELTA   600

Definition at line 82 of file vdr.c.

Referenced by main().

#define dd (   a,
 
)    (*a ? a : b)
#define DEFAULTARGSDIR   dd(ARGSDIR, "/etc/vdr/conf.d")

Referenced by main().

#define DEFAULTCACHEDIR   dd(CACHEDIR, VideoDirectory)

Referenced by main().

#define DEFAULTCONFDIR   dd(CONFDIR, VideoDirectory)

Referenced by main().

#define DEFAULTEPGDATAFILENAME   "epg.data"

Referenced by main().

#define DEFAULTLOCDIR   LOCDIR

Referenced by main().

#define DEFAULTPLUGINDIR   PLUGINDIR

Referenced by main().

#define DEFAULTRESDIR   dd(RESDIR, ConfigDirectory)

Referenced by main().

#define DEFAULTSVDRPPORT   6419

Referenced by main().

#define DEFAULTVIDEODIR   VIDEODIR

Referenced by main().

#define DEFAULTWATCHDOG   0

Referenced by main().

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

Referenced by main().

#define DEPRECATED_VDR_CHARSET_OVERRIDE
#define DEVICEREADYTIMEOUT   30

Definition at line 83 of file vdr.c.

Referenced by main().

#define DirectMainFunction (   function)
Value:
cControl::Control()->Hide();\
Menu = new cMenuMain(function);\
key = kNone; }
static cControl * Control(bool Hidden=false)
Returns the current replay control (if any) in case it is currently visible.
Definition: player.c:73
Definition: keys.h:55
#define DELETE_MENU

Referenced by main().

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

Definition at line 91 of file vdr.c.

Referenced by main().

#define MANUALSTART   600

Definition at line 81 of file vdr.c.

Referenced by main().

#define MENUTIMEOUT   120

Definition at line 84 of file vdr.c.

Referenced by main().

#define MINCHANNELWAIT   10

Definition at line 74 of file vdr.c.

Referenced by main().

#define RESTARTCANCELPROMPT   5

Definition at line 80 of file vdr.c.

Referenced by main().

#define SHUTDOWNCANCELPROMPT   5

Definition at line 79 of file vdr.c.

Referenced by main().

#define SHUTDOWNFORCEPROMPT   5

Definition at line 78 of file vdr.c.

Referenced by main().

#define SHUTDOWNRETRY   360

Definition at line 77 of file vdr.c.

Referenced by main().

#define SHUTDOWNWAIT   300

Definition at line 76 of file vdr.c.

Referenced by main().

#define TIMERCHECKDELTA   10

Definition at line 85 of file vdr.c.

Referenced by main().

#define TIMERDEVICETIMEOUT   8

Definition at line 86 of file vdr.c.

Referenced by main().

#define TIMERLOOKAHEADTIME   60

Definition at line 87 of file vdr.c.

Referenced by main().

#define VPSLOOKAHEADTIME   24

Definition at line 88 of file vdr.c.

Referenced by main().

#define VPSUPTODATETIME   3600

Definition at line 89 of file vdr.c.

Referenced by main().

Function Documentation

static bool DropCaps ( void  )
static

Definition at line 125 of file vdr.c.

Referenced by main().

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

Definition at line 176 of file vdr.c.

References cEITScanner::Active(), cRecordControls::Active(), cRecordingsHandler::Active(), cEITScanner::Activity(), ACTIVITYTIMEOUT, cDevice::ActualDevice(), AddDirectory(), cPluginManager::AddPlugin(), cChannel::Apid(), APIVERSION, cControl::Attach(), Audios, cTimers::BeingEdited(), cChannels::BeingEdited(), cDvbDevice::BondDevices(), CamControl(), CamMenuActive(), CamSlots, cCountdown::Cancel(), cTimer::Channel(), cRecordControls::ChannelDataModified(), CHANNELMOD_ALL, CHANNELMOD_RETUNE, CHANNELMOD_TRANSP, Channels, CHANNELSAVEDELTA, CHANNELSMOD_USER, cShutdownHandler::CheckManualStart(), cSchedules::Cleanup(), cSkins::Clear(), cListBase::Clear(), ClearVanishedRecordings(), cPlugin::CommandLineHelp(), Commands, cInterface::Confirm(), cShutdownHandler::ConfirmRestart(), cShutdownHandler::ConfirmShutdown(), cControl::Control(), cShutdownHandler::countdown, cDisplayVolume::Create(), cDisplayTracks::Create(), cDisplaySubtitleTracks::Create(), cSkins::Current(), cDevice::CurrentChannel(), cSetup::CurrentChannel, cSetup::CurrentVolume, cDevice::CurrentVolume(), CutRecording(), DEFAULTARGSDIR, DEFAULTCACHEDIR, DEFAULTCONFDIR, DEFAULTEPGDATAFILENAME, DEFAULTLOCDIR, DEFAULTPLUGINDIR, DEFAULTRESDIR, DEFAULTSVDRPPORT, DEFAULTVIDEODIR, DEFAULTWATCHDOG, cRecordingsHandler::DelAll(), DELETE_MENU, DeletedRecordings, 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(), cShutdownHandler::DoShutdown(), cChannel::Dpid(), DropCaps(), dsyslog, EITScanner, cShutdownHandler::EmergencyExitRequested(), cEvent::EndTime(), EpgHandlers, esyslog, cTimer::Event(), EXIT, cRecordingsHandler::Finished(), cList< T >::First(), Folders, cSetup::FontOsd, tChannelID::FromString(), GenerateIndex(), cKeyMacros::Get(), cArgs::GetArgc(), cArgs::GetArgv(), cChannels::GetByChannelID(), cChannels::GetByNumber(), cDevice::GetDevice(), cDevice::GetDeviceForTransponder(), cShutdownHandler::GetExitCode(), cFont::GetFontFileName(), cControl::GetInfo(), cInterface::GetKey(), cTimers::GetMatch(), cRemote::GetPlugin(), cPluginManager::GetPlugin(), cPositioner::GetPositioner(), cSchedules::GetSchedule(), cDevice::HasDecoder(), cTimer::HasFlags(), cPluginManager::HasPlugins(), cDevice::HasProgramme(), cInterface::HasSVDRPConnection(), 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(), cSkins::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(), LIVEPRIORITY, cScrs::Load(), cThemes::Load(), cConfig< T >::Load(), cDiseqcs::Load(), cNestedItemList::Load(), cChannels::Load(), cSetup::Load(), cPluginManager::LoadPlugins(), cRwLock::Lock(), cPlugin::MainMenuAction(), cPluginManager::MainThreadHook(), MANUALSTART, cTimer::Matches(), MAXDEVICES, cSetup::MaxVideoFileSize, MAXVIDEOFILESIZEDEFAULT, MAXVIDEOFILESIZETS, MEGABYTE, cSetup::MenuKeyCloses, MENUTIMEOUT, cSkins::Message(), MINCHANNELWAIT, MINPRIORITY, MINVIDEOFILESIZE, cTimers::Modified(), cChannels::Modified(), cStatus::MsgChannelChange(), mtError, mtInfo, mtWarning, cPlugin::Name(), cChannel::Name(), cSkin::Name(), cOsdObject::NeedsFastResponse(), cRecordings::NeedsUpdate(), cList< T >::Next(), NORMALKEY, cChannel::Number(), cDevice::NumDevices(), osBack, osChannels, osCommands, cSetup::OSDSkin, cSetup::OSDTheme, osEnd, osPause, osPlugin, osRecord, osRecordings, osReplay, osSchedule, osSetup, osStopReplay, osSwitchDvb, osTimers, osUnknown, SI::OverrideCharacterTable, cSetup::PauseKeyHandling, cRecordControls::PauseLiveVideo(), cMenuMain::PluginOsdObject(), cSchedule::PresentSeenWithin(), cDevice::PrimaryDevice(), cSetup::PrimaryDVB, cEITScanner::Process(), cDisplayVolume::Process(), cDisplayTracks::Process(), cDisplaySubtitleTracks::Process(), cRecordControls::Process(), cOsdObject::ProcessKey(), cSkins::ProcessQueuedMessages(), cDevice::ProvidesTransponder(), cRemote::Put(), cRemote::PutMacro(), cSkins::QueueMessage(), cArgs::ReadDirectory(), cTimer::Recording(), RecordingCommands, Recordings, RecordingsHandler, Remotes, RemoveDeletedRecordings(), cChannels::ReNumber(), cDevice::Replaying(), ReportEpgBugFixStats(), RESTARTCANCELPROMPT, cShutdownHandler::Retry(), cConfig< T >::Save(), cSetup::Save(), cSchedules::Schedules(), Scrs, cEvent::SeenWithin(), cPlugin::SetCacheDirectory(), cRecordingUserCommand::SetCommand(), cPlugin::SetConfigDirectory(), cSkins::SetCurrent(), cPluginManager::SetDirectory(), cSchedules::SetEpgDataFileName(), cTimers::SetEvents(), cSVDRP::SetGrabImageDir(), cTimer::SetInVpsMargin(), SetKeepCaps(), cThread::SetMainThreadId(), cVideoDirectory::SetName(), cDevice::SetOccupied(), SI::SetOverrideCharacterTable(), cTimer::SetPending(), cDevice::SetPrimaryDevice(), cPlugin::SetResourceDirectory(), cShutdownHandler::SetRetry(), cShutdownHandler::SetShutdownCommand(), cCharSetConv::SetSystemCharacterTable(), SI::SetSystemCharacterTable(), cThemes::SetThemesDirectory(), Setup, cDevice::SetUseDevice(), SetUser(), cShutdownHandler::SetUserInactive(), cShutdownHandler::SetUserInactiveTimeout(), cDevice::SetVolume(), cOsdObject::Show(), cControl::Shutdown(), cPluginManager::Shutdown(), cDevice::Shutdown(), cRecordControls::Shutdown(), cOsdProvider::Shutdown(), SHUTDOWNCANCELPROMPT, SHUTDOWNFORCEPROMPT, ShutdownHandler, SHUTDOWNRETRY, SHUTDOWNWAIT, SignalHandler(), Skins, SourceParams, Sources, cSetup::SplitEditedFiles, cCountdown::Start(), cThread::Start(), cRecordControls::Start(), cPluginManager::StartPlugins(), cEvent::StartTime(), cPluginManager::StopPlugins(), cDevice::StopReplay(), StrToNum(), SVDRPhosts, cDevice::SwitchChannel(), cChannels::SwitchTo(), SysLogLevel, tfActive, tfVps, cSkin::Theme(), cThread::ThreadId(), TIMERCHECKDELTA, TimerCommands, TIMERDEVICETIMEOUT, TIMERLOOKAHEADTIME, Timers, cDevice::ToggleMute(), tr, cDevice::Transferring(), cRwLock::Unlock(), cCountdown::Update(), cRecordings::Update(), cOsdProvider::UpdateOsdSize(), VDRVERSION, cPlugin::Version(), VOLUMEDELTA, cChannel::Vpid(), VPSLOOKAHEADTIME, cSetup::VpsMargin, VPSUPTODATETIME, cCamSlots::WaitForAllCamSlotsReady(), cDevice::WaitForAllDevicesReady(), Watchdog(), and cSetup::ZapTimeout.

static bool SetKeepCaps ( bool  On)
static

Definition at line 142 of file vdr.c.

Referenced by main().

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

Definition at line 95 of file vdr.c.

Referenced by main().

static void SignalHandler ( int  signum)
static

Definition at line 152 of file vdr.c.

References cShutdownHandler::Exit(), Interface, cInterface::Interrupt(), LastSignal, and ShutdownHandler.

Referenced by main().

static void Watchdog ( int  signum)
static

Definition at line 168 of file vdr.c.

References esyslog.

Referenced by main().

Variable Documentation

int LastSignal = 0
static

Definition at line 93 of file vdr.c.

Referenced by main(), and SignalHandler().