Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

Path Class Reference
(Phonon::Path)
[Phonon module]

The Path class describes connections between media nodes. More...

 #include <Phonon/Path>

This class is not part of the Qt GUI Framework Edition.

This class was introduced in Qt 4.4.


Public Functions

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

Related Non-Members

Path createPath ( MediaNode * source, MediaNode * sink )

Detailed Description

The Path class describes connections between media nodes.

In a media graph, MediaNodes are connected by Paths. The multimedia travels in streams over these paths.

You create a path between two media nodes using the static Phonon::createPath() function, which takes two nodes as arguments. The first argument will send the media stream to the second. Please refer to the class description of the individual media nodes and the Phonon overview to see which nodes can be connected to each other.

Paths are also used to insert audio Effects between two media nodes. The effect will then alter the stream on the path. Notice that Effects also are media nodes, but that insertEffect() - instead of Phonon::createPath() - is used to insert them into the media graph.

The following code example shows how to create a path between two media nodes and insert an effect on that path.

 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
 QList<EffectDescription> effectList = BackendCapabilities::availableAudioEffects();
 if (!effectList.isEmpty()) {
     Effect *effect = path.insertEffect(effectList.first());
 }

See also Phonon::MediaNode, Phonon::MediaObject, Phonon::AudioOutput, Phonon::VideoWidget, and Phonon Module.


Member Function Documentation

Path::Path ()

Creates an invalid path.

You can still make it a valid path by calling reconnect. It is recommended to use the Phonon::createPath() function to create paths.

See also Phonon::createPath() and isValid().

Path::Path ( const Path & path )

Constructs a copy of the other path specified.

This constructor is fast thanks to explicit sharing.

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().

bool Path::disconnect ()

Tries to disconnect the path from the MediaNodes it is connected to, returning true if successful or false if unsuccessful.

If successful, the path is invalidated: isValid() will returns false.

QList<Effect *> 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() and removeEffect().

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

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.

desc is the EffectDescription object for the effect to be inserted.

If you already inserted an effect you can tell with insertBefore 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 a pointer to the effect object if it could be inserted at the specified position. If 0 is returned, the effect was not inserted.

Below is a code example for inserting an effect into a path:

     QList<Phonon::EffectDescription> effectDescriptions =
             Phonon::BackendCapabilities::availableAudioEffects();
     Phonon::EffectDescription effectDescription = effectDescriptions.at(4);

     Phonon::Path path = Phonon::createPath(mediaObject, audioOutput);

     Phonon::Effect *effect = new Phonon::Effect(effectDescription);
     path.insertEffect(effect);

See also removeEffect() and effects().

bool Path::insertEffect ( Effect * effect, Effect * insertBefore = 0 )

Inserts the given effect into the path before the effect specified by insertBefore and returns true if successful; otherwise returns false.

If insertBefore is zero, the effect is appended to the processing list.

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

effect will be inserted right before insertBefore. If insertBefore 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 whether the effect could be inserted at the specified position. If false is returned the effect was not inserted.

See also removeEffect() and effects().

bool Path::isValid () const

A path is considered valid if it is connected to two media nodes, in which case this function returns true. If it is connected to one or no media nodes, it is consider invalid, and this function will then return false.

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

Changes the media nodes the path is connected to by connecting the path to the source and sink nodes specified. Returns true if successful; otherwise returns false.

If unsuccessful, the path remains connected to the same nodes as before.

See also Phonon::createPath() and Phonon Overview.

bool Path::removeEffect ( Effect * effect )

Removes the given effect from the path and returns true; otherwise returns false.

Removes an effect from the path.

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

See also insertEffect() and effects().

MediaNode * Path::sink () const

Returns the sink MediaNode used by the path.

MediaNode * Path::source () const

Returns the source MediaNode used by the path.

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

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

Path & 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.

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

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


Related Non-Members

Path Phonon::createPath ( MediaNode * source, MediaNode * sink )

Creates a new Path connecting the two MediaNodes source and sink.

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.

source The MediaNode to connect an output from sink The MediaNode to connect to.

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 80
  2. Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  3. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  4. BlackBerry 10 : premières images du prochain OS de RIM qui devrait intégrer des widgets et des tuiles inspirées de Windows Phone 0
  5. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. 2017 : un quinquennat pour une nouvelle version du C++ ? Possible, selon Herb Sutter 6
Page suivante

Le Qt Developer Network au hasard

Logo

Combiner licence, à propos et fermer d'une dernière manière

Le Qt Developer Network est un réseau de développeurs Qt anglophone, où ils peuvent partager leur expérience sur le framework. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.6
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web