MythTV  0.25-pre
Classes | Enumerations | Functions
util.h File Reference

Go to the source code of this file.

Classes

struct  timing_ab_t

Enumerations

enum  DateTimeFormat {
  kDateFull = 1, kDateShort = 2, kTime = 4, kDateTimeFull = 5,
  kDateTimeShort = 6, kAddYear = 16, kSimplify = 32
}

Functions

MBASE_PUBLIC QDateTime mythCurrentDateTime ()
 Returns the current QDateTime object, stripped of its msec component.
MBASE_PUBLIC int calc_utc_offset (void)
MBASE_PUBLIC QString getTimeZoneID (void)
 Returns the zoneinfo time zone ID or as much time zone information as possible.
MBASE_PUBLIC bool checkTimeZone (void)
 Verifies the time zone settings on this system agree with those on the master backend.
MBASE_PUBLIC bool checkTimeZone (const QStringList &master_settings)
 This overloaded version allows for the use of an existing (not managed by MythContext) connection to the backend.
MBASE_PUBLIC QDateTime MythUTCToLocal (const QDateTime &utc)
 Converts a QDateTime in UTC to local time.
MBASE_PUBLIC int MythSecsTo (const QDateTime &from, const QDateTime &to)
 Returns "'to' - 'from'" for two QDateTime's in seconds.
MBASE_PUBLIC QDateTime myth_dt_from_string (const QString &dtstr)
MBASE_PUBLIC QString MythDateTimeToString (const QDateTime &datetime, uint format=kDateTimeFull)
MBASE_PUBLIC QString MythDateToString (const QDate &date, uint format=kDateFull)
MBASE_PUBLIC QString MythTimeToString (const QTime &time, uint format=kTime)
MBASE_PUBLIC bool getUptime (time_t &uptime)
 Returns uptime statistics.
MBASE_PUBLIC bool getMemStats (int &totalMB, int &freeMB, int &totalVM, int &freeVM)
 Returns memory statistics in megabytes.
MBASE_PUBLIC bool hasUtf8 (const char *str)
 Guess whether a string is UTF-8.
MBASE_PUBLIC bool ping (const QString &host, int timeout)
 Can we ping host within timeout seconds?
MBASE_PUBLIC bool telnet (const QString &host, int port)
 Can we talk to port on host?
MBASE_PUBLIC long long copy (QFile &dst, QFile &src, uint block_size=0)
 Copies src file to dst file.
MBASE_PUBLIC QString createTempFile (QString name_template="/tmp/mythtv_XXXXXX", bool dir=false)
MBASE_PUBLIC void makeFileAccessible (QString filename)
 Makes a file accessible to all frontends/backends.
MBASE_PUBLIC QString getResponse (const QString &query, const QString &def)
 In an interactive shell, prompt the user to input a string.
MBASE_PUBLIC int intResponse (const QString &query, int def)
 In an interactive shell, prompt the user to input a number.
MBASE_PUBLIC QString getSymlinkTarget (const QString &start_file, QStringList *intermediaries=NULL, unsigned maxLinks=255)
MBASE_PUBLIC void sendPlaybackStart ()
MBASE_PUBLIC void sendPlaybackEnd ()
MBASE_PUBLIC void wrapList (QStringList &list, int width)
float clamp (float val, float minimum, float maximum)
int clamp (int val, int minimum, int maximum)
float lerp (float r, float a, float b)
int lerp (float r, int a, int b)
float sq (float a)
int sq (int a)
static QString xml_bool_to_string (bool val)
MBASE_PUBLIC QString xml_indent (uint level)
MBASE_PUBLIC bool IsMACAddress (QString MAC)
MBASE_PUBLIC bool WakeOnLAN (QString MAC)
MBASE_PUBLIC QString FileHash (QString filename)
MBASE_PUBLIC bool IsPulseAudioRunning (void)
 Is A/V Sync destruction daemon is running on this host?
MBASE_PUBLIC bool myth_nice (int val)
MBASE_PUBLIC void myth_yield (void)
MBASE_PUBLIC bool myth_ioprio (int val)
MBASE_PUBLIC bool MythRemoveDirectory (QDir &aDir)
MBASE_PUBLIC QString & ShellEscape (QString &string)
MBASE_PUBLIC void setHttpProxy (void)
 Get network proxy settings from OS, and use for [Q]Http[Comms].
void rdtsc (uint64_t &x)

Enumeration Type Documentation

Enumerator:
kDateFull 
kDateShort 
kTime 
kDateTimeFull 

KDateFull | KTime.

kDateTimeShort 

KDateShort | KTime.

kAddYear 

Add year to string if not included.

kSimplify 

Show Today/Yesterday/Tomorrow instead of date.

Definition at line 31 of file util.h.


Function Documentation

MBASE_PUBLIC QDateTime mythCurrentDateTime ( )
MBASE_PUBLIC int calc_utc_offset ( void  )
MBASE_PUBLIC QString getTimeZoneID ( void  )

Returns the zoneinfo time zone ID or as much time zone information as possible.

Definition at line 431 of file util.cpp.

Referenced by checkTimeZone(), connect_to_master(), Myth::GetTimeZone(), BaseRequestHandler::HandleQueryTimeZone(), and MainServer::HandleQueryTimeZone().

MBASE_PUBLIC bool checkTimeZone ( void  )

Verifies the time zone settings on this system agree with those on the master backend.

Definition at line 502 of file util.cpp.

Referenced by checkTimeZone(), connect_to_master(), and BackendConnectionManager::customEvent().

MBASE_PUBLIC bool checkTimeZone ( const QStringList &  master_settings)

This overloaded version allows for the use of an existing (not managed by MythContext) connection to the backend.

Definition at line 522 of file util.cpp.

MBASE_PUBLIC QDateTime MythUTCToLocal ( const QDateTime &  utc)
MBASE_PUBLIC int MythSecsTo ( const QDateTime &  from,
const QDateTime &  to 
)

Returns "'to' - 'from'" for two QDateTime's in seconds.

Definition at line 614 of file util.cpp.

Referenced by calc_utc_offset(), and MythUTCToLocal().

MBASE_PUBLIC QDateTime myth_dt_from_string ( const QString &  dtstr)
MBASE_PUBLIC QString MythDateTimeToString ( const QDateTime &  datetime,
uint  format = kDateTimeFull 
)
MBASE_PUBLIC QString MythDateToString ( const QDate &  date,
uint  format = kDateFull 
)
MBASE_PUBLIC QString MythTimeToString ( const QTime &  time,
uint  format = kTime 
)
MBASE_PUBLIC bool getUptime ( time_t &  uptime)

Returns uptime statistics.

Returns:
true if successful, false otherwise.

Definition at line 638 of file util.cpp.

Referenced by StatusBox::doMachineStatus(), BaseRequestHandler::HandleQueryUptime(), MainServer::HandleQueryUptime(), and NetworkControl::processQuery().

MBASE_PUBLIC bool getMemStats ( int totalMB,
int freeMB,
int totalVM,
int freeVM 
)

Returns memory statistics in megabytes.

Todo:
Memory Statistics are not supported (by MythTV) on NT or DOS.
Returns:
true if it succeeds, false otherwise.

Definition at line 685 of file util.cpp.

Referenced by StatusBox::doMachineStatus(), BaseRequestHandler::HandleQueryMemStats(), MainServer::HandleQueryMemStats(), and NetworkControl::processQuery().

MBASE_PUBLIC bool hasUtf8 ( const char *  str)

Guess whether a string is UTF-8.

Note:
This does not attempt to validate the whole string. It just checks if it has any UTF-8 sequences in it.

Definition at line 753 of file util.cpp.

MBASE_PUBLIC bool ping ( const QString &  host,
int  timeout 
)

Can we ping host within timeout seconds?

Some unixes don't like the -t argument. To make sure a ping failure is actually caused by a defunct server, we might have to do a ping without the -t, which will cause a long timeout.

Definition at line 798 of file util.cpp.

Referenced by setHttpProxy(), and MythContextPrivate::TestDBconnection().

MBASE_PUBLIC bool telnet ( const QString &  host,
int  port 
)

Can we talk to port on host?

Definition at line 842 of file util.cpp.

Referenced by setHttpProxy().

MBASE_PUBLIC long long copy ( QFile &  dst,
QFile &  src,
uint  block_size 
)

Copies src file to dst file.

If the dst file is open, it must be open for writing. If the src file is open, if must be open for reading.

The files will be in the same open or close state after this function runs as they were prior to this function being called.

This function does not care if the files are actual files. For compatibility with pipes and socket streams the file location will not be reset to 0 at the end of this function. If the function is successful the file pointers will be at the end of the copied data.

Parameters:
dstDestination QFile
srcSource QFile
block_sizeOptional block size in bytes, must be at least 1024, otherwise the default of 16 KB will be used.
Returns:
bytes copied on success, -1 on failure.

Definition at line 873 of file util.cpp.

Referenced by VAAPIContext::CopySurfaceToFrame(), VideoVisualGoom::Draw(), PrivateDecoderCrystalHD::GetFrame(), ImportRecorder::Open(), MythImage::Reflect(), strDup(), strDupSize(), trail_space(), and ThumbFinder::updateThumb().

MBASE_PUBLIC QString createTempFile ( QString  name_template = "/tmp/mythtv_XXXXXX",
bool  dir = false 
)
MBASE_PUBLIC void makeFileAccessible ( QString  filename)

Makes a file accessible to all frontends/backends.

This function abstracts the functionality of making a file accessible to all frontends and backends. Currently it contains a permissions hack that makes a file accessible even on a system with an improperly configured environment (umask/group) where the frontend and backend are being run as different users or where a NFS share is used but UID's/GID's differ on different hosts.

Though the function currently only changes the file mode to 0666, by abstracting the functionality, it will be easier to make changes in the future if a better approach is chosen. Similarly, using this function allows the hack to be applied only when required if code is written to detect or allow the user to specify their system is misconfigured.

Parameters:
filenamePath of file to make accessible

Definition at line 1002 of file util.cpp.

Referenced by DataDirectProcessor::SaveLineupToCache(), and PreviewGenerator::SavePreview().

MBASE_PUBLIC QString getResponse ( const QString &  query,
const QString &  def 
)

In an interactive shell, prompt the user to input a string.

Definition at line 1011 of file util.cpp.

Referenced by intResponse(), ChannelData::promptForChannelUpdates(), MythContextPrivate::PromptForDatabaseParams(), and SchemaUpgradeWizard::PromptForUpgrade().

MBASE_PUBLIC int intResponse ( const QString &  query,
int  def 
)

In an interactive shell, prompt the user to input a number.

Definition at line 1050 of file util.cpp.

Referenced by MythContextPrivate::PromptForDatabaseParams().

MBASE_PUBLIC QString getSymlinkTarget ( const QString &  start_file,
QStringList *  intermediaries = NULL,
unsigned  maxLinks = 255 
)
MBASE_PUBLIC void sendPlaybackStart ( )

Definition at line 1116 of file util.cpp.

Referenced by VideoPlayMythSystem::Play(), playDisc(), and TV::StartTV().

MBASE_PUBLIC void sendPlaybackEnd ( )

Definition at line 1122 of file util.cpp.

Referenced by VideoPlayMythSystem::Play(), playDisc(), and TV::StartTV().

MBASE_PUBLIC void wrapList ( QStringList &  list,
int  width 
)

Definition at line 1545 of file util.cpp.

Referenced by CommandLineArg::GetHelpString(), and CommandLineArg::GetLongHelpString().

float clamp ( float  val,
float  minimum,
float  maximum 
) [inline]
int clamp ( int  val,
int  minimum,
int  maximum 
) [inline]

Definition at line 79 of file util.h.

float lerp ( float  r,
float  a,
float  b 
) [inline]

Definition at line 83 of file util.h.

Referenced by lerp().

int lerp ( float  r,
int  a,
int  b 
) [inline]

Definition at line 87 of file util.h.

float sq ( float  a) [inline]
int sq ( int  a) [inline]

Definition at line 92 of file util.h.

static QString xml_bool_to_string ( bool  val) [inline, static]
MBASE_PUBLIC QString xml_indent ( uint  level)
MBASE_PUBLIC bool IsMACAddress ( QString  MAC)

Definition at line 1128 of file util.cpp.

Referenced by Scheduler::WakeUpSlave().

MBASE_PUBLIC bool WakeOnLAN ( QString  MAC)

Definition at line 1216 of file util.cpp.

Referenced by Scheduler::WakeUpSlave().

MBASE_PUBLIC QString FileHash ( QString  filename)
MBASE_PUBLIC bool IsPulseAudioRunning ( void  )

Is A/V Sync destruction daemon is running on this host?

Definition at line 1258 of file util.cpp.

Referenced by AudioOutput::OpenAudio(), and PulseHandler::Suspend().

MBASE_PUBLIC bool myth_nice ( int  val)
MBASE_PUBLIC void myth_yield ( void  )

Definition at line 1290 of file util.cpp.

MBASE_PUBLIC bool myth_ioprio ( int  val)
MBASE_PUBLIC bool MythRemoveDirectory ( QDir &  aDir)
MBASE_PUBLIC QString& ShellEscape ( QString &  string)

Definition at line 1415 of file util.cpp.

Referenced by Search::executeSearch().

MBASE_PUBLIC void setHttpProxy ( void  )

Get network proxy settings from OS, and use for [Q]Http[Comms].

The HTTP_PROXY environment var. is parsed for values like; "proxy-host", "proxy-host:8080", "http://host:8080" and "http"//user:password:1080", and that is used for any Qt-based Http fetches. We also test connectivity here with ping and telnet, and warn if it fails.

If there is was no env. var, we use Qt to get proxy settings from the OS, and search through them for a proxy server we can connect to.

Definition at line 1443 of file util.cpp.

Referenced by main().

void rdtsc ( uint64_t x) [inline]

Definition at line 121 of file util.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends