radioStation Class Reference

This class rips radio streams and uses the options available from a config file. More...

#include <radiostation.h>

Inheritance diagram for radioStation:

Inheritance graph
[legend]
Collaboration diagram for radioStation:

Collaboration graph
[legend]

List of all members.

Public Slots

int execSettingsDialog ()
void showSettingsDialog ()

Signals

void uriChanged (qlonglong index, PropertyValue newUri)

Public Member Functions

 radioStation (QObject *parent=0, QWidget *mainWidget=0, const QString &configFileName=QString())
 radioStation (QObject *parent, QWidget *mainWidget, const QString &configFileName, qlonglong index)
virtual ~radioStation ()
QString configFileName () const
virtual PropertyValue uri () const
virtual void setServerUri (const QUrl &uri)

Static Public Member Functions

static PropertyValue formatedUri (const QString &theUri)

Protected Slots

virtual void setBitrate (const qlonglong ignored, const PropertyValue &newBitrate)
virtual void setMetaInterval (const qlonglong ignored, const PropertyValue &newMetaInterval)
virtual void setServerName (const qlonglong ignored, const PropertyValue &newServerName)
virtual void setStreamName (const qlonglong ignored, const PropertyValue &newStreamName)

Protected Member Functions

virtual QStringList parameterList () const
virtual QString serverUri () const
virtual QString workingDirectory () const
Reimplemented properties
These functions for property access are reimplemented. They write both to the property system of ripping and to the file configFileName.

virtual void setBitrate (const qint64 bitrate)
virtual void setMetaInterval (const qint64 metaInterval)
virtual void setServerName (const QString &newServerName)
virtual void setStreamName (const QString &newStreamName)

Protected Attributes

QPointer< settings_stream > config_skeleton
QPointer< QWidget > m_mainWidget
QPointer< settings_stream_dialogsettingsDialog

Properties

QString configFileName
PropertyValue uri

Private Slots

void helper_write_properties_from_file_to_class_ripping ()
void updateMetaData ()

Private Member Functions

void helper_setupConfigSystem (const QString &configFile)
int helper_displaySettingsDialog (const bool returnImmediately)

Private Attributes

QString internal_configFileName
KSharedConfig::Ptr shared_config
QPointer< get_stream_infoinfoCatcher


Detailed Description

This class rips radio streams and uses the options available from a config file.

It uses via config_skeleton a config file (see property configFileName) to determinate the URI of the stream and further options for the record (pregrap, postgrab, user agent string...).

It provides the public slot void showSettingsDialog(), who shows a dialog that is a graphical interface to the config file.

Definition at line 36 of file radiostation.h.


Constructor & Destructor Documentation

radioStation::radioStation ( QObject *  parent = 0,
QWidget *  mainWidget = 0,
const QString &  configFileName = QString() 
) [explicit]

Constructor of the class.

Parameters:
parent Sets the parent of this object.
mainWidget When an options dialog gets displayed, this widget is used as parent and the dialog gets centerd to this Widget.
configFileName Here you can give a (local!) path to a configuration file. See class QFile::setName for details about which format is valid. If the file doesn't exist, the object tries to create it. If this isn't possible (for example if the path is invalid or you don't have the rights or you gave the name of a directory or if you didn't give any path), then a new configuration file is created in the appdata directory set in KDE, with the name stream_??????_rc with the six ? replaced by random letters. You can obtain the path of the really used file later trough the property configFileName.

Definition at line 34 of file radiostation.cpp.

References helper_setupConfigSystem(), helper_write_properties_from_file_to_class_ripping(), and m_mainWidget.

Here is the call graph for this function:

radioStation::radioStation ( QObject *  parent,
QWidget *  mainWidget,
const QString &  configFileName,
qlonglong  index 
) [explicit]

Conveniance constructor of the class.

Parameters:
parent Sets the parent of this object.
mainWidget When an options dialog gets displayed, this widget is used as parent and the dialog gets centerd to this Widget.
configFileName Here you can give a (local!) path to a configuration file. See class QFile::setName for details about which format is valid. If the file doesn't exist, the object tries to create it. If this isn't possible (for example if the path is invalid or you don't have the rights or you gave the name of a directory or if you didn't give any path), then a new configuration file is created in the appdata directory set in KDE, with the name stream_??????_rc with the six ? replaced by random letters. You can obtain the path of the really used file later trough the property configFileName.
index Initializes the property index.

Definition at line 43 of file radiostation.cpp.

References helper_setupConfigSystem(), helper_write_properties_from_file_to_class_ripping(), m_mainWidget, and streamripper_base::setIndex().

Here is the call graph for this function:

radioStation::~radioStation (  )  [virtual]

The destructor.

Definition at line 63 of file radiostation.cpp.

References config_skeleton, and settingsDialog.


Member Function Documentation

QString radioStation::configFileName (  )  const

See property configFileName.

int radioStation::execSettingsDialog (  )  [slot]

Execs a configuration dialog.

See also:
helper_displaySettingsDialog()

Definition at line 249 of file radiostation.cpp.

References helper_displaySettingsDialog().

Here is the call graph for this function:

PropertyValue radioStation::formatedUri ( const QString &  theUri  )  [static]

Returns:
A full-featured formateded version for the property uri.

Definition at line 278 of file radiostation.cpp.

References PropertyValue::formatedValue, PropertyValue::internalValue, PropertyValue::type, PropertyValue::unset, and PropertyValue::value.

Referenced by helper_write_properties_from_file_to_class_ripping().

Here is the caller graph for this function:

int radioStation::helper_displaySettingsDialog ( const bool  returnImmediately  )  [private]

Displays a configuration dialog for the settings in the config file. The dialog is centered to m_mainWidget. When the dialog becomes closed, it will be deleted automatically.

Warning:
The parent of the dialog isn't this object (because it isn't a widget), but m_mainWidget. So the destructor must delete the dialog manually (if it still exists because it hasn't been closed).
Parameters:
returnImmediately If true, we show() the dialog. If false, we exec() the dialog.
Returns:
If using exec(), it returns the exit code (see QDialog::DialogCode). Else the return value is undefined.
See also:
settingsDialog

Definition at line 215 of file radiostation.cpp.

References config_skeleton, internal_configFileName, m_mainWidget, and settingsDialog.

Referenced by execSettingsDialog(), and showSettingsDialog().

Here is the caller graph for this function:

void radioStation::helper_setupConfigSystem ( const QString &  configFile  )  [inline, private]

A helper function used in the constructors.

Definition at line 80 of file radiostation.cpp.

References config_skeleton, helper_write_properties_from_file_to_class_ripping(), internal_configFileName, and shared_config.

Referenced by radioStation().

Here is the call graph for this function:

Here is the caller graph for this function:

void radioStation::helper_write_properties_from_file_to_class_ripping (  )  [private, slot]

This function loads the values of the properties that are stored in configFileName from this file and writes them to the property system of the inherited class ripping, causing the notify signals to be emitted if necessary. It also emits always the notify signal for the property uri.

This slot is necessary to catch changes to the config that that are not done by this class itself (for example by the settings dialog, see helper_displaySettingsDialog()).

As we must catch this, in consequenze we don't need to worry about writing to the properties of the class ripping when implementing set functions - this is done automatically by this function here after that the values are written to the config file.

Definition at line 54 of file radiostation.cpp.

References config_skeleton, formatedUri(), streamripper_base::index(), setBitrate(), setMetaInterval(), setServerName(), setStreamName(), and uriChanged().

Referenced by helper_setupConfigSystem(), and radioStation().

Here is the call graph for this function:

Here is the caller graph for this function:

QStringList radioStation::parameterList (  )  const [protected, virtual]

This function provides the necessary parameters for calling streamripper. Uses ripping::parameterList() and adds the parameters readed from configFileName.

Reimplemented from ripping.

Definition at line 161 of file radiostation.cpp.

References config_skeleton.

QString radioStation::serverUri (  )  const [protected, virtual]

Returns:
The stream URI readed from configFileName.

Implements ripping.

Definition at line 156 of file radiostation.cpp.

References config_skeleton.

Referenced by updateMetaData().

Here is the caller graph for this function:

void radioStation::setBitrate ( const qlonglong  ignored,
const PropertyValue newBitrate 
) [protected, virtual, slot]

Provided for conveniance. It relies on the regular set method of the property. It is important to guard a clear concept of responsabilities and to make sure that all necessary updates to internal data is done.

Parameters:
ignored This argument hasn't any function.
newBitrate The new value. Only the value of its member internalValue is used.

Definition at line 324 of file radiostation.cpp.

References PropertyValue::internalValue, and setBitrate().

Here is the call graph for this function:

void radioStation::setBitrate ( const qint64  bitrate  )  [protected, virtual]

Reimplemented virtual function that uses the file configFileName.

Reimplemented from ripping.

Definition at line 138 of file radiostation.cpp.

References config_skeleton.

Referenced by helper_write_properties_from_file_to_class_ripping(), setBitrate(), setServerUri(), and updateMetaData().

Here is the caller graph for this function:

void radioStation::setMetaInterval ( const qlonglong  ignored,
const PropertyValue newMetaInterval 
) [protected, virtual, slot]

Provided for conveniance. It relies on the regular set method of the property. It is important to guard a clear concept of responsabilities and to make sure that all necessary updates to internal data is done.

Parameters:
ignored This argument hasn't any function.
newMetaInterval The new value. Only the value of its member internalValue is used.

Definition at line 329 of file radiostation.cpp.

References PropertyValue::internalValue, and setMetaInterval().

Here is the call graph for this function:

void radioStation::setMetaInterval ( const qint64  metaInterval  )  [protected, virtual]

Reimplemented virtual function that uses the file configFileName.

Reimplemented from ripping.

Definition at line 147 of file radiostation.cpp.

References config_skeleton.

Referenced by helper_write_properties_from_file_to_class_ripping(), setMetaInterval(), setServerUri(), and updateMetaData().

Here is the caller graph for this function:

void radioStation::setServerName ( const qlonglong  ignored,
const PropertyValue newServerName 
) [protected, virtual, slot]

Provided for conveniance. It relies on the regular set method of the property. It is important to guard a clear concept of responsabilities and to make sure that all necessary updates to internal data is done.

Parameters:
ignored This argument hasn't any function.
newServerName The new value. Only the value of its member internalValue is used.

Definition at line 335 of file radiostation.cpp.

References PropertyValue::internalValue, and setServerName().

Here is the call graph for this function:

void radioStation::setServerName ( const QString &  newServerName  )  [protected, virtual]

Reimplemented virtual function that uses the file configFileName.

Reimplemented from ripping.

Definition at line 130 of file radiostation.cpp.

References config_skeleton.

Referenced by helper_write_properties_from_file_to_class_ripping(), setServerName(), setServerUri(), and updateMetaData().

Here is the caller graph for this function:

void radioStation::setServerUri ( const QUrl &  uri  )  [virtual]

Sets the URI of the stream and actualizes the meta data.

Parameters:
uri The new URI

Definition at line 254 of file radiostation.cpp.

References config_skeleton, ripping::default_value_of_bitrate(), ripping::default_value_of_metaInterval(), ripping::default_value_of_serverName(), ripping::default_value_of_streamName(), setBitrate(), setMetaInterval(), setServerName(), setStreamName(), and updateMetaData().

Here is the call graph for this function:

void radioStation::setStreamName ( const qlonglong  ignored,
const PropertyValue newStreamName 
) [protected, virtual, slot]

Provided for conveniance. It relies on the regular set method of the property. It is important to guard a clear concept of responsabilities and to make sure that all necessary updates to internal data is done.

Parameters:
ignored This argument hasn't any function.
newStreamName The new value. Only the value of its member internalValue is used.

Definition at line 340 of file radiostation.cpp.

References PropertyValue::internalValue, and setStreamName().

Here is the call graph for this function:

void radioStation::setStreamName ( const QString &  newStreamName  )  [protected, virtual]

Reimplemented virtual function that uses the file configFileName.

Reimplemented from ripping.

Definition at line 122 of file radiostation.cpp.

References config_skeleton.

Referenced by helper_write_properties_from_file_to_class_ripping(), setServerUri(), setStreamName(), and updateMetaData().

Here is the caller graph for this function:

void radioStation::showSettingsDialog (  )  [slot]

Shows a configuration dialog.

See also:
helper_displaySettingsDialog()

Definition at line 244 of file radiostation.cpp.

References helper_displaySettingsDialog().

Here is the call graph for this function:

void radioStation::updateMetaData (  )  [private, slot]

Releads parts of the meta data that has typically changed after the URI has changed.

See also:
setServerUri()

Definition at line 300 of file radiostation.cpp.

References ripping::bitrateChanged(), infoCatcher, ripping::metaIntervalChanged(), ripping::serverNameChanged(), serverUri(), setBitrate(), setMetaInterval(), setServerName(), setStreamName(), and ripping::streamNameChanged().

Referenced by setServerUri().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual PropertyValue radioStation::uri (  )  const [virtual]

See property uri.

void radioStation::uriChanged ( qlonglong  index,
PropertyValue  newUri 
) [signal]

Referenced by helper_write_properties_from_file_to_class_ripping().

Here is the caller graph for this function:

QString radioStation::workingDirectory (  )  const [protected, virtual]

Provides the working directory for the Streamripper process.

Implements ripping.

Definition at line 295 of file radiostation.cpp.


Member Data Documentation

QPointer<settings_stream> radioStation::config_skeleton [protected]

See also:
updateMetaData()

Definition at line 232 of file radiostation.h.

Referenced by updateMetaData().

Used internally to store the property configFileName.

Definition at line 220 of file radiostation.h.

Referenced by helper_displaySettingsDialog(), and helper_setupConfigSystem().

QPointer<QWidget> radioStation::m_mainWidget [protected]

Is set by the constructor. The settings dialog will be centered to this widget.

See also:
showSettingsDialog()

Definition at line 143 of file radiostation.h.

Referenced by helper_displaySettingsDialog(), and radioStation().

A pointer to the settings dialog (if actually exists one).

See also:
showSettingsDialog()

Definition at line 165 of file radiostation.h.

Referenced by helper_displaySettingsDialog(), and ~radioStation().

KSharedConfig::Ptr radioStation::shared_config [private]

This points to a KSharedConfig object that uses configFileName. Use config_skeleton to get comfortable access all these things.

This is a KSharedConfig::Ptr (a KSharedPtr to a KSharedConfig object). The constructor will create a KSharedConfig object that uses configFileName - and this pointer will point on it. When the pointer is deleted (=when the radiostation object it belongs to becomes deleted), it will automatically delete also the KSharedConfig object it points to.

Definition at line 230 of file radiostation.h.

Referenced by helper_setupConfigSystem().


Property Documentation

QString radioStation::configFileName [read]

This property holds the path to the configuration file used by this object. You can determinate the path to the configuration file in the constructor (see there for further details). Once set there, it can't be changed anymore.

Use config_skeleton for comfortable access to the settings that are stored in the configuration file.
See also:
QString internal_configFileName

Definition at line 50 of file radiostation.h.

PropertyValue radioStation::uri [read]

This property holds the URI from which the stream comes.

This property doesn't exist on it's own. It uses serverUri() to get the URI. The notify signal is emitted always when the config file changes.

Initialization value: an empty string

This property guards it's last value also when streamripper terminates.

See also:
 static PropertyValue formatedServerName(const QString theServerName) 

Definition at line 66 of file radiostation.h.


The documentation for this class was generated from the following files:

doxygen