Phonon::Path

Search for usage in LXR

#include <phonon/Path>

Public Member Functions

 Path ()
 
 Path (const Path &)
 
 ~Path ()
 
bool disconnect ()
 
QList< Effect * > effects () const
 
EffectinsertEffect (const EffectDescription &desc, Effect *insertBefore=nullptr)
 
bool insertEffect (Effect *newEffect, Effect *insertBefore=nullptr)
 
bool isValid () const
 
bool operator!= (const Path &p) const
 
Pathoperator= (const Path &p)
 
bool operator== (const Path &p) const
 
bool reconnect (MediaNode *source, MediaNode *sink)
 
bool removeEffect (Effect *effect)
 
MediaNode * sink () const
 
MediaNode * source () const
 

Protected Attributes

QExplicitlySharedDataPointer< PathPrivate > d
 

Related Symbols

(Note that these are not member symbols.)

PHONON_EXPORT Path createPath (MediaNode *source, MediaNode *sink)
 

Detailed Description

Connection object providing convenient effect insertion.

MediaObject *media = new MediaObject;
AudioOutput *output = new AudioOutput(Phonon::MusicCategory);
Path path = Phonon::createPath(media, output);
Q_ASSERT(path.isValid()); // for this simple case the path should always be
//valid - there are unit tests to ensure it
// insert an effect
if (!effectList.isEmpty()) {
Effect *effect = path.insertEffect(effectList.first());
}
Class for audio output to the soundcard.
Definition audiooutput.h:49
Effects that can be inserted into a Path.
Definition effect.h:64
Interface for media playback of a given URL.
Definition mediaobject.h:94
Connection object providing convenient effect insertion.
Definition path.h:62
PHONON_EXPORT QList< EffectDescription > availableAudioEffects()
Returns the visualization effects the backend supports.
T & first()
bool isEmpty() const const
Author
Matthias Kretz kretz.nosp@m.@kde.nosp@m..org
Thierry Bastian thier.nosp@m.ry.b.nosp@m.astia.nosp@m.n@tr.nosp@m.ollte.nosp@m.ch.c.nosp@m.om

Definition at line 61 of file path.h.

Constructor & Destructor Documentation

◆ ~Path()

Phonon::Path::~Path ( )

Destroys this reference to the Path.

If the path was valid the connection is not broken as both the source and the sink MediaNodes still keep a reference to the Path.

See also
disconnect

Definition at line 66 of file path.cpp.

◆ Path() [1/2]

Phonon::Path::Path ( )

Creates an invalid path.

You can still make it a valid path by calling reconnect. To create a path you should use createPath, though.

See also
createPath
isValid

Definition at line 70 of file path.cpp.

◆ Path() [2/2]

Phonon::Path::Path ( const Path & rhs)

Constructs a copy of the given path.

This constructor is fast thanks to explicit sharing.

Definition at line 75 of file path.cpp.

Member Function Documentation

◆ disconnect()

bool Phonon::Path::disconnect ( )

Disconnects the path from the MediaNodes it was connected to.

This invalidates the path (isValid returns false then).

Definition at line 224 of file path.cpp.

◆ effects()

QList< Effect * > Phonon::Path::effects ( ) const

Returns a list of Effect objects that are currently used as effects.

The order in the list determines the order the signal is sent through the effects.

Returns
A list with all current effects.
See also
insertEffect
removeEffect

Definition at line 148 of file path.cpp.

◆ insertEffect() [1/2]

Effect * Phonon::Path::insertEffect ( const EffectDescription & desc,
Effect * insertBefore = nullptr )

Creates and inserts an effect into the path.

You may insert effects of the same class as often as you like, but if you insert the same object, the call will fail.

Parameters
descThe EffectDescription object for the effect to be inserted.
insertBeforeIf you already inserted an effect you can tell with this parameter in which order the data gets processed. If this is 0 the effect is appended at the end of the processing list. If the effect has not been inserted before the method will do nothing and return false.
Returns
Returns a pointer to the effect object if it could be inserted at the specified position. If 0 is returned the effect was not inserted.
See also
removeEffect
effects

Definition at line 86 of file path.cpp.

◆ insertEffect() [2/2]

bool Phonon::Path::insertEffect ( Effect * newEffect,
Effect * insertBefore = nullptr )

Inserts an effect into the path.

You may insert effects of the same class as often as you like, but if you insert the same object, the call will fail.

Parameters
newEffectAn Effect object.
insertBeforeIf you already inserted an effect you can tell with this parameter in which order the data gets processed. If this is 0 the effect is appended at the end of the processing list. If the effect has not been inserted before the method will do nothing and return false.
Returns
Returns whether the effect could be inserted at the specified position. If false is returned the effect was not inserted.
See also
removeEffect
effects

Definition at line 104 of file path.cpp.

◆ isValid()

bool Phonon::Path::isValid ( ) const

Returns whether the path object connects two MediaNodes or not.

Returns
true when the path connects two MediaNodes
false when the path is disconnected

Definition at line 80 of file path.cpp.

◆ operator!=()

bool Phonon::Path::operator!= ( const Path & p) const

Returns true if this Path is not equal to p; otherwise returns false;.

Definition at line 467 of file path.cpp.

◆ operator=()

Path & Phonon::Path::operator= ( const Path & p)

Assigns p to this Path and returns a reference to this Path.

This operation is fast thanks to explicit sharing.

Definition at line 456 of file path.cpp.

◆ operator==()

bool Phonon::Path::operator== ( const Path & p) const

Returns true if this Path is equal to p; otherwise returns false;.

Definition at line 462 of file path.cpp.

◆ reconnect()

bool Phonon::Path::reconnect ( MediaNode * source,
MediaNode * sink )

Tries to change the MediaNodes the path is connected to.

If reconnect fails the old connection is kept.

Definition at line 154 of file path.cpp.

◆ removeEffect()

bool Phonon::Path::removeEffect ( Effect * effect)

Removes an effect from the path.

If the effect gets deleted while it is still connected the effect will be removed automatically.

Parameters
effectThe effect to be removed.
Returns
Returns whether the call was successful. If it returns false the effect could not be found in the path, meaning it has not been inserted before.
See also
insertEffect
effects

Definition at line 143 of file path.cpp.

◆ sink()

MediaNode * Phonon::Path::sink ( ) const

Returns the sink MediaNode used by the path.

Definition at line 283 of file path.cpp.

◆ source()

MediaNode * Phonon::Path::source ( ) const

Returns the source MediaNode used by the path.

Definition at line 278 of file path.cpp.

Friends And Related Symbol Documentation

◆ createPath()

PHONON_EXPORT Path createPath ( MediaNode * source,
MediaNode * sink )
related

Creates a new Path connecting two MediaNodes.

The implementation will automatically select the right format and media type. E.g. connecting a MediaObject and AudioOutput will create a Path object connecting the audio. This might be represented as PCM or perhaps even AC3 depending on the AudioOutput object.

Parameters
sourceThe MediaNode to connect an output from
sinkThe MediaNode to connect to.

Definition at line 431 of file path.cpp.

Member Data Documentation

◆ d

QExplicitlySharedDataPointer<PathPrivate> Phonon::Path::d
protected

Definition at line 220 of file path.h.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:20:24 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.