vdr
2.4.7
|
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <float.h>
#include <iconv.h>
#include <math.h>
#include <poll.h>
#include <stdarg.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <syslog.h>
#include <sys/stat.h>
#include <sys/types.h>
#include "thread.h"
Go to the source code of this file.
Classes | |
class | cCharSetConv |
class | cString |
class | cBase64Encoder |
class | cBitStream |
class | cTimeMs |
class | cReadLine |
class | cPoller |
class | cReadDir |
class | cFile |
class | cSafeFile |
class | cUnbufferedFile |
class | cLockFile |
class | cListObject |
class | cListGarbageCollector |
class | cListBase |
class | cList< T > |
class | cVector< T > |
class | cStringList |
class | cFileNameList |
class | cDynamicBuffer |
class | cHashObject |
class | cHashBase |
class | cHash< T > |
Macros | |
#define | esyslog(a...) void( (SysLogLevel > 0) ? syslog_with_tid(LOG_ERR, a) : void() ) |
#define | isyslog(a...) void( (SysLogLevel > 1) ? syslog_with_tid(LOG_INFO, a) : void() ) |
#define | dsyslog(a...) void( (SysLogLevel > 2) ? syslog_with_tid(LOG_DEBUG, a) : void() ) |
#define | LOG_ERROR esyslog("ERROR (%s,%d): %m", __FILE__, __LINE__) |
#define | LOG_ERROR_STR(s) esyslog("ERROR (%s,%d): %s: %m", __FILE__, __LINE__, s) |
#define | SECSINDAY 86400 |
#define | KILOBYTE(n) ((n) * 1024) |
#define | MEGABYTE(n) ((n) * 1024LL * 1024LL) |
#define | MALLOC(type, size) (type *)malloc(sizeof(type) * (size)) |
#define | CHECK(s) { if ((s) < 0) LOG_ERROR; } |
#define | FATALERRNO (errno && errno != EAGAIN && errno != EINTR) |
#define | BCDCHARTOINT(x) (10 * ((x & 0xF0) >> 4) + (x & 0xF)) |
#define | IsBitSet(v, b) ((v) & (1 << (b))) |
#define | Utf8BufSize(s) ((s) * 4) |
#define | Utf8to(conv, c) (cCharSetConv::SystemCharacterTable() ? to##conv(c) : tow##conv(c)) |
#define | Utf8is(ccls, c) (cCharSetConv::SystemCharacterTable() ? is##ccls(c) : isw##ccls(c)) |
#define | DEF_LIST_LOCK2(Class, Name) |
#define | DEF_LIST_LOCK(Class) DEF_LIST_LOCK2(Class, Class) |
#define | USE_LIST_LOCK_READ2(Class, Name) |
#define | USE_LIST_LOCK_READ(Class) USE_LIST_LOCK_READ2(Class, Class) |
#define | USE_LIST_LOCK_WRITE2(Class, Name) |
#define | USE_LIST_LOCK_WRITE(Class) USE_LIST_LOCK_WRITE2(Class, Class) |
#define | HASHSIZE 512 |
Typedefs | |
typedef unsigned char | uchar |
Functions | |
template<class T > | |
void | DELETENULL (T *&p) |
template<class T > | |
T | min (T a, T b) |
template<class T > | |
T | max (T a, T b) |
template<class T > | |
int | sgn (T a) |
template<class T > | |
void | swap (T &a, T &b) |
template<class T > | |
T | constrain (T v, T l, T h) |
void | syslog_with_tid (int priority, const char *format,...) __attribute__((format(printf |
int | BCD2INT (int x) |
template<class T > | |
T | get_unaligned (T *p) |
template<class T > | |
void | put_unaligned (unsigned int v, T *p) |
bool | DoubleEqual (double a, double b) |
int | Utf8CharLen (const char *s) |
uint | Utf8CharGet (const char *s, int Length=0) |
int | Utf8CharSet (uint c, char *s=NULL) |
int | Utf8SymChars (const char *s, int Symbols) |
int | Utf8StrLen (const char *s) |
char * | Utf8Strn0Cpy (char *Dest, const char *Src, int n) |
int | Utf8ToArray (const char *s, uint *a, int Size) |
int | Utf8FromArray (const uint *a, char *s, int Size, int Max=-1) |
ssize_t | safe_read (int filedes, void *buffer, size_t size) |
ssize_t | safe_write (int filedes, const void *buffer, size_t size) |
void | writechar (int filedes, char c) |
int | WriteAllOrNothing (int fd, const uchar *Data, int Length, int TimeoutMs=0, int RetryMs=0) |
char * | strcpyrealloc (char *dest, const char *src) |
char * | strn0cpy (char *dest, const char *src, size_t n) |
char * | strreplace (char *s, char c1, char c2) |
char * | strreplace (char *s, const char *s1, const char *s2) |
const char * | strchrn (const char *s, char c, size_t n) |
int | strcountchr (const char *s, char c) |
char * | skipspace (const char *s) |
char * | stripspace (char *s) |
char * | compactspace (char *s) |
char * | compactchars (char *s, char c) |
cString | strescape (const char *s, const char *chars) |
cString | strgetval (const char *s, const char *name, char d='=') |
char * | strshift (char *s, int n) |
bool | startswith (const char *s, const char *p) |
bool | endswith (const char *s, const char *p) |
bool | isempty (const char *s) |
int | numdigits (int n) |
bool | isnumber (const char *s) |
int64_t | StrToNum (const char *s) |
bool | StrInArray (const char *a[], const char *s) |
double | atod (const char *s) |
cString | dtoa (double d, const char *Format="%f") |
cString | itoa (int n) |
uint16_t | Peek13 (const uchar *p) |
void | Poke13 (uchar *p, uint16_t v) |
cString | AddDirectory (const char *DirName, const char *FileName) |
bool | EntriesOnSameFileSystem (const char *File1, const char *File2) |
int | FreeDiskSpaceMB (const char *Directory, int *UsedMB=NULL) |
bool | DirectoryOk (const char *DirName, bool LogErrors=false) |
bool | MakeDirs (const char *FileName, bool IsDirectory=false) |
bool | RemoveFileOrDir (const char *FileName, bool FollowSymlinks=false) |
bool | RemoveEmptyDirectories (const char *DirName, bool RemoveThis=false, const char *IgnoreFiles[]=NULL) |
int | DirSizeMB (const char *DirName) |
char * | ReadLink (const char *FileName) |
bool | SpinUpDisk (const char *FileName) |
void | TouchFile (const char *FileName) |
time_t | LastModifiedTime (const char *FileName) |
off_t | FileSize (const char *FileName) |
cString | WeekDayName (int WeekDay) |
cString | WeekDayName (time_t t) |
cString | WeekDayNameFull (int WeekDay) |
cString | WeekDayNameFull (time_t t) |
cString | DayDateTime (time_t t=0) |
cString | TimeToString (time_t t) |
cString | DateString (time_t t) |
cString | ShortDateString (time_t t) |
cString | TimeString (time_t t) |
uchar * | RgbToJpeg (uchar *Mem, int Width, int Height, int &Size, int Quality=100) |
const char * | GetHostName (void) |
int | CompareInts (const void *a, const void *b) |
int | CompareStrings (const void *a, const void *b) |
int | CompareStringsIgnoreCase (const void *a, const void *b) |
int | CompareStringsNumerically (const void *a, const void *b) |
Variables | |
int | SysLogLevel |
cListGarbageCollector | ListGarbageCollector |
#define BCDCHARTOINT | ( | x | ) | (10 * ((x & 0xF0) >> 4) + (x & 0xF)) |
#define DEF_LIST_LOCK | ( | Class | ) | DEF_LIST_LOCK2(Class, Class) |
#define DEF_LIST_LOCK2 | ( | Class, | |
Name | |||
) |
#define dsyslog | ( | a... | ) | void( (SysLogLevel > 2) ? syslog_with_tid(LOG_DEBUG, a) : void() ) |
#define esyslog | ( | a... | ) | void( (SysLogLevel > 0) ? syslog_with_tid(LOG_ERR, a) : void() ) |
#define FATALERRNO (errno && errno != EAGAIN && errno != EINTR) |
#define isyslog | ( | a... | ) | void( (SysLogLevel > 1) ? syslog_with_tid(LOG_INFO, a) : void() ) |
#define LOG_ERROR esyslog("ERROR (%s,%d): %m", __FILE__, __LINE__) |
#define LOG_ERROR_STR | ( | s | ) | esyslog("ERROR (%s,%d): %s: %m", __FILE__, __LINE__, s) |
#define MALLOC | ( | type, | |
size | |||
) | (type *)malloc(sizeof(type) * (size)) |
#define USE_LIST_LOCK_READ | ( | Class | ) | USE_LIST_LOCK_READ2(Class, Class) |
#define USE_LIST_LOCK_READ2 | ( | Class, | |
Name | |||
) |
#define USE_LIST_LOCK_WRITE | ( | Class | ) | USE_LIST_LOCK_WRITE2(Class, Class) |
#define USE_LIST_LOCK_WRITE2 | ( | Class, | |
Name | |||
) |
#define Utf8is | ( | ccls, | |
c | |||
) | (cCharSetConv::SystemCharacterTable() ? is##ccls(c) : isw##ccls(c)) |
#define Utf8to | ( | conv, | |
c | |||
) | (cCharSetConv::SystemCharacterTable() ? to##conv(c) : tow##conv(c)) |
cString AddDirectory | ( | const char * | DirName, |
const char * | FileName | ||
) |
Definition at line 386 of file tools.c.
References cString::sprintf().
Referenced by cDirCopier::Action(), cLockFile::cLockFile(), cSVDRPServer::CmdGRAB(), cMenuRecordings::DirectoryName(), DirSizeMB(), GenerateIndex(), GetRecordingsSortMode(), GetRecordingTimerId(), HasRecordingsSortMode(), cDvbDevice::Initialize(), cFileNameList::Load(), cMarks::Load(), cThemes::Load(), cPictureEntry::Load(), main(), cMarks::MarksFileName(), cPictureEntry::Path(), cArgs::ReadDirectory(), RemoveEmptyDirectories(), RemoveFileOrDir(), cVideoDirectoryScannerThread::ScanVideoDir(), SetRecordingsSortMode(), SetRecordingTimerId(), and cRecordings::UpdateFileName().
double atod | ( | const char * | s | ) |
Converts the given string, which is a floating point number using a '.
' as the decimal point, to a double value, independent of the currently selected locale.
Definition at line 395 of file tools.c.
References DECIMAL_POINT_C.
Referenced by cSetup::Parse(), and cRecordingInfo::Read().
int BCD2INT | ( | int | x | ) |
Definition at line 45 of file tools.c.
References BCDCHARTOINT.
Referenced by cNitFilter::Process().
char* compactchars | ( | char * | s, |
char | c | ||
) |
removes all occurrences of 'c' from the beginning an end of 's' and replaces sequences of multiple 'c's with a single 'c'.
Definition at line 232 of file tools.c.
Referenced by cString::CompactChars().
char* compactspace | ( | char * | s | ) |
Definition at line 215 of file tools.c.
References skipspace(), and stripspace().
Referenced by cEvent::FixEpgBugs(), cSetupLine::Parse(), cSdtFilter::Process(), and cRecordingInfo::Read().
|
inline |
Definition at line 784 of file tools.h.
Referenced by cMenuSetupCAMItem::Changed().
|
inline |
Definition at line 789 of file tools.h.
Referenced by CompareStringsNumerically(), and cStringList::Sort().
|
inline |
Definition at line 794 of file tools.h.
Referenced by cStringList::Sort().
|
inline |
Definition at line 799 of file tools.h.
References CompareStrings().
Referenced by cStringList::SortNumerically().
|
inline |
Definition at line 66 of file tools.h.
Referenced by DrawDevicePosition(), cIndexFile::GetClosestIFrame(), GetRecordingsSortMode(), cDvbTuner::GetSignalQuality(), RgbShade(), cPixmap::SetAlpha(), cFont::SetFont(), cSkinLCARSDisplayReplay::SetMode(), cSkinSTTNGDisplayReplay::SetMode(), cOsd::SetOsdPosition(), cReceiver::SetPriority(), cDevice::SetVolume(), and cSubtitleClut::yuv2rgb().
cString DateString | ( | time_t | t | ) |
Converts the given time to a string of the form "www dd.mm.yyyy".
Definition at line 1219 of file tools.c.
References WeekDayName().
Referenced by cEvent::GetDateString(), cSkinCursesDisplayMenu::SetRecording(), cSkinClassicDisplayMenu::SetRecording(), cSkinLCARSDisplayMenu::SetRecording(), cSkinSTTNGDisplayMenu::SetRecording(), and cPluginSvdrpdemo::SVDRPCommand().
cString DayDateTime | ( | time_t | t = 0 | ) |
Converts the given time to a string of the form "www dd.mm. hh:mm".
If no time is given, the current time is taken.
Definition at line 1198 of file tools.c.
References WeekDayName().
Referenced by cPictureControl::DisplayCaption(), cSkinLCARSDisplayChannel::DrawDate(), cSkinLCARSDisplayMenu::DrawDate(), cSkinLCARSDisplayReplay::DrawDate(), cSkinLCARSDisplayMenu::DrawTimer(), cStateLockLog::Dump(), cSkinCursesDisplayChannel::Flush(), cSkinCursesDisplayMenu::Flush(), cSkinClassicDisplayChannel::Flush(), cSkinClassicDisplayMenu::Flush(), cSkinSTTNGDisplayChannel::Flush(), cSkinSTTNGDisplayMenu::Flush(), and cSkinSTTNGDisplayMenu::SetButtons().
|
inline |
Definition at line 49 of file tools.h.
Referenced by cDvbSubtitleConverter::Action(), cDevice::AttachPlayer(), cSVDRPServer::Close(), cSVDRPServer::CmdPUTE(), cRecordControl::cRecordControl(), cPictureControl::DisplayCaption(), cSVDRPServer::Execute(), cDevice::MakePrimaryDevice(), cRecordControls::Process(), cPictureControl::ProcessKey(), cEvent::Read(), cDvbSubtitleConverter::Reset(), cDevice::SetChannel(), cDevice::SetCurrentSubtitleTrack(), cRecordControls::Shutdown(), cRecordControl::Stop(), cRecordControls::Stop(), cOsdMenu::~cOsdMenu(), and cPictureMenu::~cPictureMenu().
bool DirectoryOk | ( | const char * | DirName, |
bool | LogErrors = false |
||
) |
Definition at line 465 of file tools.c.
References esyslog, and LOG_ERROR_STR.
Referenced by cDirCopier::Action(), cLockFile::cLockFile(), CutRecording(), GenerateIndex(), main(), and SpinUpDisk().
int DirSizeMB | ( | const char * | DirName | ) |
returns the total size of the files in the given directory, or -1 in case of an error
Definition at line 623 of file tools.c.
References AddDirectory(), LOG_ERROR_STR, MEGABYTE, cReadDir::Next(), and cReadDir::Ok().
Referenced by cRecording::FileSizeMB().
|
inline |
Definition at line 93 of file tools.h.
Referenced by cRecorder::Action(), cIndexFileGenerator::Action(), cDvbSubtitleBitmaps::Draw(), cOsd::DrawScaledBitmap(), cMenuSetupOSD::ProcessKey(), cMenuEditPrcItem::ProcessKey(), and cOsdProvider::UpdateOsdSize().
cString dtoa | ( | double | d, |
const char * | Format = "%f" |
||
) |
Converts the given double value to a string, making sure it uses a '.
' as the decimal point, independent of the currently selected locale. If Format is given, it will be used instead of the default.
Definition at line 416 of file tools.c.
References DECIMAL_POINT_C, and strreplace().
Referenced by cSetup::Store(), and cRecordingInfo::Write().
bool endswith | ( | const char * | s, |
const char * | p | ||
) |
Definition at line 322 of file tools.c.
Referenced by cChannel::ClearObsoleteChannel(), cChannels::MarkObsoleteChannels(), cArgs::ReadDirectory(), cRecording::Remove(), cVideoDirectoryScannerThread::ScanVideoDir(), and cRecordingInfo::SetFileName().
bool EntriesOnSameFileSystem | ( | const char * | File1, |
const char * | File2 | ||
) |
Checks whether the given files are on the same file system.
If either of the files doesn't exist, this function returns true to avoid any actions that might be triggered if files are on different file system.
Definition at line 433 of file tools.c.
References LOG_ERROR_STR.
Referenced by cVideoDirectory::Contains(), and cVideoDirectory::Move().
off_t FileSize | ( | const char * | FileName | ) |
returns the size of the given file, or -1 in case of an error (e.g. if the file doesn't exist)
Definition at line 715 of file tools.c.
Referenced by cDirCopier::Action(), cIndexFileGenerator::Action(), and cIndexFile::cIndexFile().
int FreeDiskSpaceMB | ( | const char * | Directory, |
int * | UsedMB = NULL |
||
) |
Definition at line 448 of file tools.c.
References LOG_ERROR_STR.
Referenced by cVideoDirectory::FreeMB(), and cRecorder::RunningLowOnDiskSpace().
|
inline |
Definition at line 78 of file tools.h.
References __attribute__().
Referenced by cCiTransportConnection::HandleSessions(), cCiApplicationInformation::Process(), and cCiTransportConnection::ResourceIdToInt().
const char* GetHostName | ( | void | ) |
Gets the host name of this machine.
Definition at line 1347 of file tools.c.
References LOG_ERROR.
Referenced by cSetup::cSetup(), and cSetup::Save().
bool isempty | ( | const char * | s | ) |
Definition at line 333 of file tools.c.
References skipspace().
Referenced by cPluginManager::Active(), cMenuEditFolder::cMenuEditFolder(), cRecording::cRecording(), cTimer::cTimer(), cMenuFolder::Delete(), cMenuFolder::DescendPath(), cOsdMenu::Display(), cEvent::Dump(), cMenuCommands::Execute(), cTheme::FileNameOk(), cEvent::FixEpgBugs(), tComponent::FromString(), cSource::FromString(), cRecording::IsInPath(), cTheme::Load(), cConfig< T >::Load(), cChannel::Name(), cNestedItemList::Parse(), cSkins::QueueMessage(), cArgs::ReadDirectory(), cMenuFolder::Select(), cMenuFolder::Set(), cMenuCam::Set(), cComponents::SetComponent(), cSkinCursesDisplayMenu::SetEvent(), cSkinClassicDisplayMenu::SetEvent(), cSkinLCARSDisplayMenu::SetEvent(), cSkinSTTNGDisplayMenu::SetEvent(), cTimer::SetFile(), cMenuEditTimer::SetFolder(), cChannel::SetName(), cChannel::SetPortalName(), cSkinCursesDisplayMenu::SetRecording(), cSkinClassicDisplayMenu::SetRecording(), cSkinLCARSDisplayMenu::SetRecording(), cSkinSTTNGDisplayMenu::SetRecording(), cChannel::ShortName(), and cChannel::ToText().
bool isnumber | ( | const char * | s | ) |
Definition at line 348 of file tools.c.
Referenced by cSVDRPServer::CmdCHAN(), cSVDRPServer::CmdCLRE(), cSVDRPServer::CmdCPYR(), cSVDRPServer::CmdDELC(), cSVDRPServer::CmdDELR(), cSVDRPServer::CmdDELT(), cSVDRPServer::CmdEDIT(), cSVDRPServer::CmdGRAB(), cSVDRPServer::CmdLSTC(), cSVDRPServer::CmdLSTE(), cSVDRPServer::CmdLSTR(), cSVDRPServer::CmdLSTT(), cSVDRPServer::CmdMOVR(), cSVDRPServer::CmdPLAY(), cSVDRPServer::CmdPRIM(), cSVDRPServer::CmdVOLU(), main(), cCamResponse::Parse(), cTimer::Parse(), and SetUser().
cString itoa | ( | int | n | ) |
Definition at line 426 of file tools.c.
Referenced by cDisplaySubtitleTracks::cDisplaySubtitleTracks(), cDisplayTracks::cDisplayTracks(), cResumeFile::cResumeFile(), DrawDeviceData(), cSkinLCARSDisplayMenu::DrawDisk(), DrawEllipseAlignments(), cSkinLCARSDisplayMenu::DrawLive(), cSkinLCARSDisplayMenu::DrawTimers(), cMenuTimerItem::Set(), and cTimer::ToText().
time_t LastModifiedTime | ( | const char * | FileName | ) |
Definition at line 707 of file tools.c.
Referenced by cRecording::FileSizeMB(), cRecordings::NeedsUpdate(), cRecording::NumFrames(), cMarks::Save(), and cMarks::Update().
bool MakeDirs | ( | const char * | FileName, |
bool | IsDirectory = false |
||
) |
Definition at line 483 of file tools.c.
References dsyslog, and LOG_ERROR_STR.
Referenced by cMenuRecordingEdit::Action(), cPlugin::CacheDirectory(), cRecording::ChangeName(), cSVDRPServer::CmdCPYR(), cPlugin::ConfigDirectory(), cRecordControl::cRecordControl(), cPlugin::ResourceDirectory(), cThemes::SetThemesDirectory(), and cCutter::Start().
|
inline |
Definition at line 59 of file tools.h.
Referenced by cDirCopier::Action(), cBackTrace::BackTrace(), cDvbSpuDecoder::CalcAreaSize(), cDvbSpuBitmap::cDvbSpuBitmap(), cEIT::cEIT(), cMenuSetupOSD::cMenuSetupOSD(), cRect::Combine(), cCharSetConv::Convert(), cSkinClassicDisplayTracks::cSkinClassicDisplayTracks(), cSkinCursesDisplayTracks::cSkinCursesDisplayTracks(), cSkinLCARSDisplayTracks::cSkinLCARSDisplayTracks(), cSkinSTTNGDisplayReplay::cSkinSTTNGDisplayReplay(), cSkinSTTNGDisplayTracks::cSkinSTTNGDisplayTracks(), cOsdMenu::CursorDown(), cOsdMenu::CursorUp(), cOsdMenu::Display(), DrawDeviceData(), DrawDevicePosition(), DrawDeviceSignal(), cPixmapMemory::DrawEllipse(), cBitmap::DrawEllipse(), cBitmap::DrawRectangle(), cSkinLCARSDisplayMenu::DrawScrollbar(), cSkinCursesDisplayMenu::DrawScrollbar(), cSkinClassicDisplayMenu::DrawScrollbar(), cSkinSTTNGDisplayMenu::DrawScrollbar(), cPixmapMemory::DrawText(), cBitmap::DrawText(), cHdffOsd::DrawText(), cSkinLCARSDisplayMenu::DrawTimer(), cSkinClassicDisplayMenu::Flush(), cBackTrace::GetCaller(), cTimers::GetMaxPriority(), cAdaptiveSkipper::GetValue(), cRect::Intersected(), cTimer::Matches(), cChannels::MaxChannelNameLength(), cChannels::MaxShortChannelNameLength(), cOsdMenu::PageDown(), cMtdHandler::Priority(), cDevice::Priority(), cLineGame::ProcessKey(), cTrueColorDemo::ProcessKey(), cTsToPes::PutTs(), cUnbufferedFile::Read(), cDynamicBuffer::Realloc(), cDvbSubtitleAssembler::Realloc(), cBitmap::Scaled(), cOsd::SetAreas(), cSkinLCARSDisplayChannel::SetChannel(), cSkinLCARSDisplayReplay::SetCurrent(), cOsdMenu::SetCurrent(), cSkinLCARSDisplayReplay::SetTotal(), cDvbPlayer::SkipSeconds(), cCondWait::SleepMs(), strcpyrealloc(), cRecording::Title(), TsDump(), and cUnbufferedFile::Write().
|
inline |
Definition at line 58 of file tools.h.
Referenced by cTrueColorDemo::Action(), cDvbSpuDecoder::CalcAreaSize(), cDvbSpuBitmap::cDvbSpuBitmap(), cRect::Combine(), cSkinCursesDisplayTracks::cSkinCursesDisplayTracks(), cOsdMenu::Display(), DrawDevicePosition(), cBitmap::DrawRectangle(), cSkinLCARSDisplayMenu::DrawScrollbar(), cSkinCursesDisplayMenu::DrawScrollbar(), cSkinClassicDisplayMenu::DrawScrollbar(), cSkinSTTNGDisplayMenu::DrawScrollbar(), cSkinLCARSDisplayChannel::DrawSeen(), cSkinLCARSDisplayMenu::DrawSeen(), cSkinSTTNGDisplayChannel::Flush(), cNaluStreamProcessor::GetBuffer(), cFont::GetFont(), cTsToPes::GetPes(), cDvbTuner::GetSignalQuality(), cRect::Intersected(), cReplayControl::MarkMove(), cTimer::Matches(), cNitFilter::Process(), cLineGame::ProcessKey(), cTrueColorDemo::ProcessKey(), cUnbufferedFile::Read(), cCaPidReceiver::Receive(), RgbShade(), cBitmap::Scaled(), cCiMMI::SendAnswer(), cDiseqcPositioner::SendDiseqc(), cTextScroller::Set(), cDevice::SetOccupied(), cDvbSubtitleConverter::SetOsdData(), cSkinLCARSDisplayMenu::SetTitle(), cDiseqcPositioner::Step(), cReplayControl::TimeSearchProcess(), TsDump(), cOsdProvider::UpdateOsdSize(), WeekDayName(), and cUnbufferedFile::Write().
|
inline |
Definition at line 256 of file tools.h.
Referenced by MtdMapPid(), and cCaPidReceiver::Receive().
|
inline |
Definition at line 261 of file tools.h.
Referenced by MtdMapPid().
|
inline |
Definition at line 84 of file tools.h.
References __attribute__().
Referenced by cCiTransportConnection::SendTag().
char* ReadLink | ( | const char * | FileName | ) |
returns a new string allocated on the heap, which the caller must delete (or NULL in case of an error)
Definition at line 655 of file tools.c.
References LOG_ERROR_STR.
Referenced by cSafeFile::cSafeFile().
bool RemoveEmptyDirectories | ( | const char * | DirName, |
bool | RemoveThis = false , |
||
const char * | IgnoreFiles[] = NULL |
||
) |
Removes all empty directories under the given directory DirName.
If RemoveThis is true, DirName will also be removed if it is empty. IgnoreFiles can be set to an array of file names that will be ignored when considering whether a directory is empty. If IgnoreFiles is given, the array must end with a NULL pointer.
Definition at line 569 of file tools.c.
References AddDirectory(), dsyslog, LOG_ERROR_STR, cReadDir::Next(), cReadDir::Ok(), and StrInArray().
Referenced by cVideoDirectory::Cleanup().
bool RemoveFileOrDir | ( | const char * | FileName, |
bool | FollowSymlinks = false |
||
) |
Definition at line 511 of file tools.c.
References AddDirectory(), dsyslog, LOG_ERROR_STR, MALLOC, cReadDir::Next(), and cReadDir::Ok().
Referenced by cVideoDirectory::Remove().
Converts the given Memory to a JPEG image and returns a pointer to the resulting image.
Mem must point to a data block of exactly (Width * Height) triplets of RGB image data bytes. Upon return, Size will hold the number of bytes of the resulting JPEG data. Quality can be in the range 0..100 and controls the quality of the resulting image, where 100 is "best". The caller takes ownership of the result and has to delete it once it is no longer needed. The result may be NULL in case of an error.
Definition at line 1304 of file tools.c.
References JpegCompressEmptyOutputBuffer(), JpegCompressInitDestination(), JpegCompressTermDestination(), tJpegCompressData::mem, and tJpegCompressData::size.
Referenced by cDvbSdFfDevice::GrabImage(), and cSubtitleDebug::WriteJpeg().
ssize_t safe_read | ( | int | filedes, |
void * | buffer, | ||
size_t | size | ||
) |
Definition at line 53 of file tools.c.
References dsyslog.
Referenced by cLircRemote::Action(), cDirCopier::Action(), cIndexFile::CatchUp(), cIndexFile::cIndexFile(), cSVDRPClient::Process(), cSVDRPServer::Process(), cRingBufferLinear::Read(), cDvbCiAdapter::Read(), cUnbufferedFile::Read(), cResumeFile::Read(), cDevice::ReadFilter(), cKbdRemote::ReadKey(), and cRcuRemote::ReceiveByte().
ssize_t safe_write | ( | int | filedes, |
const void * | buffer, | ||
size_t | size | ||
) |
Definition at line 65 of file tools.c.
References dsyslog.
Referenced by cDirCopier::Action(), cSVDRPServer::CmdGRAB(), cDevice::GrabImageFile(), cResumeFile::Save(), cSVDRPClient::Send(), cSVDRPServer::Send(), cIndexFile::Write(), cDvbCiAdapter::Write(), cUnbufferedFile::Write(), and writechar().
|
inline |
Definition at line 61 of file tools.h.
Referenced by cDevice::SwitchChannel().
cString ShortDateString | ( | time_t | t | ) |
Converts the given time to a string of the form "dd.mm.yy".
Definition at line 1230 of file tools.c.
Referenced by cSkinLCARSDisplayMenu::DrawPlay(), and cSkinLCARSDisplayReplay::SetRecording().
|
inline |
Definition at line 207 of file tools.h.
References cString::s.
Referenced by cPluginManager::AddPlugin(), cSVDRPServer::CmdCPYR(), cSVDRPServer::CmdLSTC(), cSVDRPServer::CmdMODC(), cSVDRPServer::CmdMODT(), cSVDRPServer::CmdMOVC(), cSVDRPServer::CmdMOVR(), cSVDRPServer::CmdPLAY(), cSVDRPServer::CmdPLUG(), compactspace(), cSVDRPServer::Execute(), cSatCableNumbers::FromString(), cDiseqc::GetCodes(), cOsdMenu::HotKey(), isempty(), cDll::Load(), cTheme::Load(), cBitmap::LoadXpm(), cEvent::Parse(), cKey::Parse(), cChannel::Parse(), cCamResponse::Parse(), cMenuCommands::Parse(), cMark::Parse(), cTimer::Parse(), cNestedItemList::Parse(), cTimer::ParseDay(), cSdtFilter::Process(), cRecordingInfo::Read(), cEvent::Read(), cSchedule::Read(), cResumeFile::Read(), cArgs::ReadDirectory(), cBitmap::SetXpm(), and strgetval().
bool SpinUpDisk | ( | const char * | FileName | ) |
Definition at line 669 of file tools.c.
References DirectoryOk(), dsyslog, esyslog, LOG_ERROR_STR, and cString::sprintf().
Referenced by cRecorder::cRecorder().
bool startswith | ( | const char * | s, |
const char * | p | ||
) |
Definition at line 313 of file tools.c.
Referenced by cSVDRPServer::CmdLSTC(), cSocket::Discover(), and cArgs::ReadDirectory().
const char* strchrn | ( | const char * | s, |
char | c, | ||
size_t | n | ||
) |
returns a pointer to the n'th occurrence (counting from 1) of c in s, or NULL if no such character was found. If n is 0, s is returned.
Definition at line 178 of file tools.c.
Referenced by cMenuRecordings::Info().
int strcountchr | ( | const char * | s, |
char | c | ||
) |
returns the number of occurrences of 'c' in 's'.
Definition at line 191 of file tools.c.
Referenced by cMenuRecordings::cMenuRecordings(), and cMenuRecordings::Open().
char* strcpyrealloc | ( | char * | dest, |
const char * | src | ||
) |
Definition at line 114 of file tools.c.
References esyslog, and max().
Referenced by cEvent::FixEpgBugs(), cChannel::operator=(), cChannel::Parse(), cMenuEditChannel::ProcessKey(), cComponents::SetComponent(), cEvent::SetDescription(), cChannel::SetName(), cChannel::SetPortalName(), cEvent::SetShortText(), and cEvent::SetTitle().
cString strescape | ( | const char * | s, |
const char * | chars | ||
) |
Definition at line 256 of file tools.c.
References MALLOC.
Referenced by cShutdownHandler::CallShutdownCommand(), cMenuRecordings::Commands(), and cRecordingUserCommand::InvokeCommand().
cString strgetval | ( | const char * | s, |
const char * | name, | ||
char | d = '=' |
||
) |
Returns the value part of a 'name=value' pair in s.
name must either be at the beginning of s, or has to be preceded by white space. There may be any number of white space around the '=' sign. The value is everything up to (and excluding) the next white space, or the end of s. If an other delimiter shall be used (like, e.g., ':'), it can be given as the third parameter. If name occurs more than once in s, only the first occurrence is taken.
Definition at line 279 of file tools.c.
References skipspace().
Referenced by cSVDRPServerParams::cSVDRPServerParams(), and cSocket::Discover().
bool StrInArray | ( | const char * | a[], |
const char * | s | ||
) |
Returns true if the string s is equal to one of the strings pointed to by the (NULL terminated) array a.
Definition at line 374 of file tools.c.
Referenced by RemoveEmptyDirectories().
char* stripspace | ( | char * | s | ) |
Definition at line 203 of file tools.c.
Referenced by compactspace(), GetRecordingTimerId(), cMenuEditStrItem::LeaveEditMode(), cDll::Load(), cTheme::Load(), cConfig< T >::Load(), cMenuCommands::Parse(), cNestedItemList::Parse(), cArgs::ReadDirectory(), cTextWrapper::Set(), and cRecording::Title().
char* strn0cpy | ( | char * | dest, |
const char * | src, | ||
size_t | n | ||
) |
Definition at line 131 of file tools.c.
Referenced by cLircRemote::Action(), cDvbFrontend::cDvbFrontend(), cEIT::cEIT(), cStateLockLog::Check(), cLircRemote::cLircRemote(), cMenuEditChannel::cMenuEditChannel(), cMenuEditFolder::cMenuEditFolder(), cMenuEditTimer::cMenuEditTimer(), cMenuPathEdit::cMenuPathEdit(), cMenuRecordingEdit::cMenuRecordingEdit(), cMenuSetupPictures::cMenuSetupPictures(), cRecordingInfo::cRecordingInfo(), cSetup::cSetup(), cSkinLCARSDisplayChannel::DrawTrack(), cSkinLCARSDisplayReplay::DrawTrack(), cStateLockLog::Dump(), cSkinSTTNGDisplayChannel::Flush(), cSetup::Parse(), cChannel::Parse(), cMenuCommands::Parse(), cTimer::Parse(), cSetup::ParseLanguages(), cPatPmtParser::ParsePmt(), cPatFilter::Process(), cPluginPictures::ProcessArgs(), cMenuSetupOSD::ProcessKey(), cMenuRecordingEdit::RemoveName(), cMenuEditStrlItem::Set(), cDevice::SetAvailableTrack(), cComponents::SetComponent(), cMenuPathEdit::SetFolder(), cMenuRecordingEdit::SetFolder(), cMenuEditTimer::SetFolder(), cSkinCursesDisplayReplay::SetMode(), cSkinClassicDisplayReplay::SetMode(), cChannel::SetPids(), cPluginPictures::SetupParse(), cMenuSetupPictures::Store(), cRecording::Title(), Utf8Strn0Cpy(), and WeekDayName().
char* strreplace | ( | char * | s, |
char | c1, | ||
char | c2 | ||
) |
Definition at line 139 of file tools.c.
Referenced by cMenuRecordingEdit::Action(), AddRecordingFolders(), cSVDRPServer::CmdCPYR(), cRecording::cRecording(), cSetupLine::cSetupLine(), dtoa(), cEvent::Dump(), cEvent::FixEpgBugs(), cFont::GetAvailableFontNames(), cFont::GetFontFileName(), HandleUnderscores(), cEvent::Parse(), cChannel::Parse(), cTimer::Parse(), cRecording::SortName(), cTimer::ToText(), and cChannel::ToText().
char* strreplace | ( | char * | s, |
const char * | s1, | ||
const char * | s2 | ||
) |
char* strshift | ( | char * | s, |
int | n | ||
) |
Shifts the given string to the left by the given number of bytes, thus removing the first n bytes from s.
If n is greater than the length of s, the resulting string will be empty. If n is <= 0 s will be unchanged. Returns s.
Definition at line 301 of file tools.c.
Referenced by cSVDRPClient::GetRemoteTimers().
int64_t StrToNum | ( | const char * | s | ) |
Converts the given string to a number.
The numerical part of the string may be followed by one of the letters K, M, G or T to abbreviate Kilo-, Mega-, Giga- or Terabyte, respectively (based on 1024). Everything after the first non-numeric character is silently ignored, as are any characters other than the ones mentioned here.
Definition at line 359 of file tools.c.
Referenced by main().
|
inline |
Definition at line 63 of file tools.h.
Referenced by DrawDevicePosition(), and cMarks::Sort().
void syslog_with_tid | ( | int | priority, |
const char * | format, | ||
... | |||
) |
cString TimeString | ( | time_t | t | ) |
Converts the given time to a string of the form "hh:mm".
Definition at line 1239 of file tools.c.
Referenced by cSkinLCARSDisplayMenu::DrawPlay(), cSkinLCARSDisplayMenu::DrawTimer(), cEvent::GetEndTimeString(), cEvent::GetTimeString(), cSkinCursesDisplayMenu::SetRecording(), cSkinClassicDisplayMenu::SetRecording(), cSkinLCARSDisplayMenu::SetRecording(), cSkinLCARSDisplayReplay::SetRecording(), cSkinSTTNGDisplayMenu::SetRecording(), and cPluginSvdrpdemo::SVDRPCommand().
cString TimeToString | ( | time_t | t | ) |
Converts the given time to a string of the form "www mmm dd hh:mm:ss yyyy".
Definition at line 1209 of file tools.c.
Referenced by cSVDRPServer::CmdNEXT(), cSVDRPServer::cSVDRPServer(), cTDT::cTDT(), and cShutdownHandler::DoShutdown().
void TouchFile | ( | const char * | FileName | ) |
Definition at line 701 of file tools.c.
References LOG_ERROR_STR.
Referenced by cRecordings::TouchUpdate().
uint Utf8CharGet | ( | const char * | s, |
int | Length = 0 |
||
) |
Returns the UTF-8 symbol at the beginning of the given string.
Length can be given from a previous call to Utf8CharLen() to avoid calculating it again. If no Length is given, Utf8CharLen() will be called.
Definition at line 809 of file tools.c.
References cCharSetConv::SystemCharacterTable(), SystemToUtf8, and Utf8CharLen().
Referenced by cFreetypeFont::DrawText(), cHdffOsd::DrawText(), cKbdRemote::ReadKeySequence(), cTextWrapper::Set(), cCharSetConv::SetSystemCharacterTable(), Utf8ToArray(), and cFreetypeFont::Width().
int Utf8CharLen | ( | const char * | s | ) |
Returns the number of character bytes at the beginning of the given string that form a UTF-8 symbol.
Definition at line 795 of file tools.c.
References MT, and cCharSetConv::SystemCharacterTable().
Referenced by cCharSetConv::SetSystemCharacterTable(), Utf8CharGet(), Utf8StrLen(), Utf8Strn0Cpy(), Utf8SymChars(), and Utf8ToArray().
int Utf8CharSet | ( | uint | c, |
char * | s = NULL |
||
) |
Converts the given UTF-8 symbol to a sequence of character bytes and copies them to the given string.
Returns the number of bytes written. If no string is given, only the number of bytes is returned and nothing is copied.
Definition at line 824 of file tools.c.
References cCharSetConv::SystemCharacterTable().
Referenced by Utf8FromArray().
int Utf8FromArray | ( | const uint * | a, |
char * | s, | ||
int | Size, | ||
int | Max = -1 |
||
) |
Converts the given array of UTF-8 symbols (including the terminating 0) into a sequence of character bytes of at most Size length.
Returns the number of character bytes written (without the terminating 0). If Max is given, only that many symbols will be converted. The resulting string is always zero-terminated if Size is big enough.
Definition at line 920 of file tools.c.
References cCharSetConv::SystemCharacterTable(), and Utf8CharSet().
Referenced by cMenuEditStrItem::LeaveEditMode(), and cMenuEditStrItem::Set().
int Utf8StrLen | ( | const char * | s | ) |
Returns the number of UTF-8 symbols formed by the given string of character bytes.
Definition at line 871 of file tools.c.
References cCharSetConv::SystemCharacterTable(), and Utf8CharLen().
Referenced by cSkinCursesDisplayChannel::Flush(), cSkinCursesDisplayMenu::Flush(), cChannels::MaxChannelNameLength(), cChannels::MaxShortChannelNameLength(), cSkinCursesDisplayReplay::SetCurrent(), cSkinCursesDisplayMenu::SetEvent(), cSkinCursesDisplayMenu::SetRecording(), cSkinCursesDisplayReplay::SetTotal(), cSkinCursesDisplayVolume::SetVolume(), and cCursesFont::Width().
char* Utf8Strn0Cpy | ( | char * | Dest, |
const char * | Src, | ||
int | n | ||
) |
Copies at most n character bytes from Src to Dest, making sure that the resulting copy ends with a complete UTF-8 symbol.
The copy is guaranteed to be zero terminated. Returns a pointer to Dest.
Definition at line 883 of file tools.c.
References strn0cpy(), cCharSetConv::SystemCharacterTable(), and Utf8CharLen().
Referenced by cTimer::cTimer(), cSetup::Parse(), cTimer::Parse(), cMenuSetupOSD::ProcessKey(), cDevice::SetAvailableTrack(), and cTimer::SetFile().
int Utf8SymChars | ( | const char * | s, |
int | Symbols | ||
) |
Returns the number of character bytes at the beginning of the given string that form at most the given number of UTF-8 symbols.
Definition at line 858 of file tools.c.
References cCharSetConv::SystemCharacterTable(), and Utf8CharLen().
Referenced by cMenuScheduleItem::Update(), and WeekDayName().
int Utf8ToArray | ( | const char * | s, |
uint * | a, | ||
int | Size | ||
) |
Converts the given character bytes (including the terminating 0) into an array of UTF-8 symbols of the given Size.
Returns the number of symbols in the array (without the terminating 0).
Definition at line 902 of file tools.c.
References cCharSetConv::SystemCharacterTable(), Utf8CharGet(), and Utf8CharLen().
Referenced by cMenuEditStrItem::EnterEditMode().
cString WeekDayName | ( | int | WeekDay | ) |
Converts the given WeekDay (0=Sunday, 1=Monday, ...) to a three letter day name.
Definition at line 1156 of file tools.c.
References min(), strn0cpy(), tr, and Utf8SymChars().
Referenced by DateString(), DayDateTime(), cSkinLCARSDisplayMenu::DrawTimer(), cMenuTimerItem::Set(), cMenuEditDateItem::Set(), and WeekDayName().
cString WeekDayName | ( | time_t | t | ) |
Converts the week day of the given time to a three letter day name.
Definition at line 1171 of file tools.c.
References WeekDayName().
cString WeekDayNameFull | ( | int | WeekDay | ) |
Converts the given WeekDay (0=Sunday, 1=Monday, ...) to a full day name.
Definition at line 1177 of file tools.c.
References tr.
Referenced by WeekDayNameFull().
cString WeekDayNameFull | ( | time_t | t | ) |
Converts the week day of the given time to a full day name.
Definition at line 1192 of file tools.c.
References WeekDayNameFull().
int WriteAllOrNothing | ( | int | fd, |
const uchar * | Data, | ||
int | Length, | ||
int | TimeoutMs = 0 , |
||
int | RetryMs = 0 |
||
) |
Writes either all Data to the given file descriptor, or nothing at all.
If TimeoutMs is greater than 0, it will only retry for that long, otherwise it will retry forever. RetryMs defines the time between two retries.
Definition at line 90 of file tools.c.
References cTimeMs::Elapsed(), FATALERRNO, and cPoller::Poll().
Referenced by cDvbHdFfDevice::PlayAudio(), cDvbSdFfDevice::PlayAudio(), cDvbHdFfDevice::PlayTsAudio(), cDvbSdFfDevice::PlayTsAudio(), cDvbHdFfDevice::PlayTsVideo(), cDvbSdFfDevice::PlayTsVideo(), cDvbHdFfDevice::PlayVideo(), and cDvbSdFfDevice::PlayVideo().
void writechar | ( | int | filedes, |
char | c | ||
) |
Definition at line 85 of file tools.c.
References safe_write().
Referenced by cIndexFile::cIndexFile().
|
extern |
Definition at line 2094 of file tools.c.
Referenced by cListBase::Del(), and main().