Phonon  4.7.0
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Pages
audiodataoutput.h
1 /* This file is part of the KDE project
2  Copyright (C) 2005-2006 Matthias Kretz <kretz@kde.org>
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Lesser General Public
6  License as published by the Free Software Foundation; either
7  version 2.1 of the License, or (at your option) version 3, or any
8  later version accepted by the membership of KDE e.V. (or its
9  successor approved by the membership of KDE e.V.), Nokia Corporation
10  (or its successors, if any) and the KDE Free Qt Foundation, which shall
11  act as a proxy defined in Section 6 of version 3 of the license.
12 
13  This library is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  Lesser General Public License for more details.
17 
18  You should have received a copy of the GNU Lesser General Public
19  License along with this library. If not, see <http://www.gnu.org/licenses/>.
20 
21 */
22 #ifndef Phonon_AUDIODATAOUTPUT_H
23 #define Phonon_AUDIODATAOUTPUT_H
24 
25 #include "phonon_export.h"
26 #include "abstractaudiooutput.h"
27 #include "phonondefs.h"
28 
29 
30 #ifndef DOXYGEN_SHOULD_SKIP_THIS
31 template<typename T> class QVector;
32 template<typename Key, typename T> class QMap;
33 #endif
34 
35 namespace Phonon
36 {
37  class AudioDataOutputPrivate;
38 
50  class PHONON_EXPORT AudioDataOutput : public AbstractAudioOutput
51  {
52  Q_OBJECT
53  P_DECLARE_PRIVATE(AudioDataOutput)
54  Q_ENUMS(Channel)
55  Q_PROPERTY(int dataSize READ dataSize WRITE setDataSize)
56  PHONON_HEIR(AudioDataOutput)
57  public:
61  enum Channel
62  {
63  LeftChannel,
64  RightChannel,
65  CenterChannel,
66  LeftSurroundChannel,
67  RightSurroundChannel,
68  SubwooferChannel
69  };
70 
77  int dataSize() const;
78 
90  int sampleRate() const;
91 
92  public Q_SLOTS:
100  void setDataSize(int size);
101 
102  Q_SIGNALS:
108  void dataReady(const QMap<Phonon::AudioDataOutput::Channel, QVector<qint16> > &data);
109 
110 
125  void endOfMedia(int remainingSamples);
126  };
127 } // namespace Phonon
128 
129 
130 // vim: sw=4 ts=4 tw=80
131 #endif // Phonon_AUDIODATAOUTPUT_H