- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Directories
- Examples

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions

# BackendInterface Class Reference

Search for all occurrences

## Detailed Description

Main Backend class interface.

This interface defines the main factory of the backend. The createObject function creates all the objects needed by the frontend.

The objectDescriptionIndexes and objectDescriptionProperties functions return information about available devices, effects and codecs.

An implementation could look like this:

     QObject *Backend::createObject(BackendInterface::Class c, QObject *parent, const QList<QVariant> &args)
     {
         switch (c) {
         case MediaObjectClass:
             return new MediaObject(parent);
         case VolumeFaderEffectClass:
             return new VolumeFaderEffect(parent);
         case AudioOutputClass:
             return new AudioOutput(parent);
         case AudioDataOutputClass:
             return new AudioDataOutput(parent);
         case VisualizationClass:
             return new Visualization(parent);
         case VideoDataOutputClass:
             return new VideoDataOutput(parent);
         case EffectClass:
             return new Effect(args[0].toInt(), parent);
         case VideoWidgetClass:
             return new VideoWidget(qobject_cast<QWidget *>(parent));
         }
         return 0;
     }

     QSet<int> Backend::objectDescriptionIndexes(ObjectDescriptionType type) const
     {
         QSet<int> set;
         switch(type)
         {
         case Phonon::AudioOutputDeviceType:
             // use AudioDeviceEnumerator to list ALSA and OSS devices
             set << 10000 << 10001;
             break;
         case Phonon::AudioCaptureDeviceType:
             set << 20000 << 20001;
             break;
         case Phonon::VideoOutputDeviceType:
             break;
         case Phonon::VideoCaptureDeviceType:
             set << 30000 << 30001;
             break;
         case Phonon::VisualizationType:
         case Phonon::AudioCodecType:
         case Phonon::VideoCodecType:
         case Phonon::ContainerFormatType:
             break;
         case Phonon::EffectType:
             set << 0x7F000001;
             break;
         }
         return set;
     }

     QHash<QByteArray, QVariant> Backend::objectDescriptionProperties(ObjectDescriptionType type, int index) const
     {
         QHash<QByteArray, QVariant> ret;
         switch (type) {
         case Phonon::AudioOutputDeviceType:
             switch (index) {
             case 10000:
                 ret.insert("name", QLatin1String("internal Soundcard"));
                 break;
             case 10001:
                 ret.insert("name", QLatin1String("USB Headset"));
                 ret.insert("icon", KIcon("usb-headset"));
                 ret.insert("available", false);
                 break;
             }
             break;
         case Phonon::AudioCaptureDeviceType:
             switch (index) {
             case 20000:
                 ret.insert("name", QLatin1String("Soundcard"));
                 ret.insert("description", QLatin1String("first description"));
                 break;
             case 20001:
                 ret.insert("name", QLatin1String("DV"));
                 ret.insert("description", QLatin1String("second description"));
                 break;
             }
             break;
         case Phonon::VideoOutputDeviceType:
             break;
         case Phonon::VideoCaptureDeviceType:
             switch (index) {
             case 30000:
                 ret.insert("name", QLatin1String("USB Webcam"));
                 ret.insert("description", QLatin1String("first description"));
                 break;
             case 30001:
                 ret.insert("name", QLatin1String("DV"));
                 ret.insert("description", QLatin1String("second description"));
                 break;
             }
             break;
         case Phonon::VisualizationType:
             break;
         case Phonon::AudioCodecType:
             break;
         case Phonon::VideoCodecType:
             break;
         case Phonon::ContainerFormatType:
             break;
         case Phonon::EffectType:
             switch (index) {
             case 0x7F000001:
                 ret.insert("name", QLatin1String("Delay"));
                 ret.insert("description", QLatin1String("Simple delay effect with time, feedback and level controls."));
                 break;
             }
             break;
         }
         return ret;
     }

Author:
  Matthias Kretz <kretz@kde.org>

Definition at line 168 of file backendinterface.h.

`#include <Phonon/BackendInterface>`

List of all members.

## Public Types
enum | Class { MediaObjectClass, VolumeFaderEffectClass, AudioOutputClass, AudioDataOutputClass, VisualizationClass, VideoDataOutputClass, EffectClass, VideoWidgetClass }
| Classes that the createObject function has to handle. More...
## Public Member Functions
virtual | ~BackendInterface ()
virtual QObject * | createObject (Class c, QObject *parent, const QList< QVariant > &args=QList< QVariant >())=0
| Returns a new instance of the requested class.
virtual QList< int > | objectDescriptionIndexes (ObjectDescriptionType type) const =0
| Returns the unique identifiers for the devices/effects/codecs of the given `type`.
virtual QHash< QByteArray, QVariant > | objectDescriptionProperties (ObjectDescriptionType type, int index) const =0
| Given a unique identifier that was returned from objectDescriptionIndexes this function returns a hash mapping property names to values.
virtual bool | startConnectionChange (QSet< QObject * >)=0
| When this function is called the nodes given in the parameter list should not lose any signal data when connections are changed.
virtual bool | connectNodes (QObject *, QObject *)=0
| Defines a signal connection between the two given nodes.
virtual bool | disconnectNodes (QObject *, QObject *)=0
| Cuts a signal connection between the two given nodes.
virtual bool | endConnectionChange (QSet< QObject * >)=0
| When this function is called the nodes given in the parameter list may lose signal data when a port is not connected.
virtual QStringList | availableMimeTypes () const =0
| gets all available mime types

## Member Enumeration Documentation

enum Class

Search for all occurrences

Classes that the createObject function has to handle.

Enumerator:

  MediaObjectClass | Request to return a MediaObject object. Search for all occurrences
  VolumeFaderEffectClass | Request to return a VolumeFaderEffect object. Search for all occurrences
  AudioOutputClass | Request to return a AudioOutput object. Search for all occurrences
  AudioDataOutputClass | Request to return a AudioDataOutput object. Search for all occurrences
  VisualizationClass | Request to return a Visualization object. Search for all occurrences
  VideoDataOutputClass | Request to return a VideoDataOutput object. Search for all occurrences
  EffectClass | Request to return a Effect object. Takes an additional int that specifies the effect Id. Search for all occurrences
  VideoWidgetClass | Request to return a VideoWidget object. Search for all occurrences

Definition at line 181 of file backendinterface.h.

                       {
                MediaObjectClass,
                VolumeFaderEffectClass,
                AudioOutputClass,
                AudioDataOutputClass,
                VisualizationClass,
                VideoDataOutputClass,
                EffectClass,
                VideoWidgetClass
            };

## Constructor & Destructor Documentation

virtual ~BackendInterface | ( |  | ) | `[inline, virtual]`

Silence gcc's warning.

Definition at line 176 of file backendinterface.h.

    {}

## Member Function Documentation

virtual QObject* createObject | ( | Class | c,
|  | QObject * | parent,
|  | const QList< QVariant > & | args = `QList< QVariant >()`
| ) |  | `[pure virtual]`

Search for all occurrences

Returns a new instance of the requested class.

Parameters:

  c | The requested class.
  parent | The parent object.
  args | Additional arguments (documented in Class).

virtual QList<int> objectDescriptionIndexes | ( | ObjectDescriptionType | type | ) | const `[pure virtual]`

Search for all occurrences

Returns the unique identifiers for the devices/effects/codecs of the given `type`.

Parameters:

  type | see ObjectDescriptionType

virtual QHash<QByteArray, QVariant> objectDescriptionProperties | ( | ObjectDescriptionType | type,
|  | int | index
| ) |  | const `[pure virtual]`

Search for all occurrences

Given a unique identifier that was returned from objectDescriptionIndexes this function returns a hash mapping property names to values.

The property "name" must always be present. All other properties are optional.

List of possible properties:

- `name: The` name of the device/effect/codec/...
- `description: A` text explaining what this device/effect/codec/... is/can do
- `icon: An` icon name (using the freedesktop naming scheme) or a QIcon for this device/effect/codec/...
- `available: A` bool telling whether the device is present or unplugged.

Parameters:

  type | see ObjectDescriptionType
  index | The unique identifier that is returned from objectDescriptionIndexes

virtual bool startConnectionChange | ( | QSet< QObject * > |  | ) | `[pure virtual]`

Search for all occurrences

When this function is called the nodes given in the parameter list should not lose any signal data when connections are changed.

virtual bool connectNodes | ( | QObject * | ,
|  | QObject * |
| ) |  | `[pure virtual]`

Search for all occurrences

Defines a signal connection between the two given nodes.

virtual bool disconnectNodes | ( | QObject * | ,
|  | QObject * |
| ) |  | `[pure virtual]`

Search for all occurrences

Cuts a signal connection between the two given nodes.

virtual bool endConnectionChange | ( | QSet< QObject * > |  | ) | `[pure virtual]`

Search for all occurrences

When this function is called the nodes given in the parameter list may lose signal data when a port is not connected.

virtual QStringList availableMimeTypes | ( |  | ) | const `[pure virtual]`

Search for all occurrences

gets all available mime types

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

- phonon/backendinterface.h

BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface
BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface BackendInterface