summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/audiodevice.h
Side-by-side diff
Diffstat (limited to 'core/multimedia/opieplayer/audiodevice.h') (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/audiodevice.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/audiodevice.h b/core/multimedia/opieplayer/audiodevice.h
new file mode 100644
index 0000000..928f134
--- a/dev/null
+++ b/core/multimedia/opieplayer/audiodevice.h
@@ -0,0 +1,71 @@
+/**********************************************************************
+** Copyright (C) 2000 Trolltech AS. All rights reserved.
+**
+** This file is part of Qtopia Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+#ifndef AUDIODEVICE_H
+#define AUDIODEVICE_H
+
+
+#include <qobject.h>
+
+
+class AudioDevicePrivate;
+
+
+class AudioDevice : public QObject {
+ Q_OBJECT
+public:
+ AudioDevice( unsigned int freq = 44000, unsigned int channels = 2, unsigned int bytesPerSample = 2 );
+ ~AudioDevice();
+
+ unsigned int canWrite() const;
+ void write( char *buffer, unsigned int length );
+ int bytesWritten();
+
+ unsigned int channels() const;
+ unsigned int frequency() const;
+ unsigned int bytesPerSample() const;
+ unsigned int bufferSize() const;
+
+ // Each volume level is from 0 to 0xFFFF
+ static void getVolume( unsigned int& left, unsigned int& right, bool& muted );
+ static void setVolume( unsigned int left, unsigned int right, bool muted );
+
+ static unsigned int leftVolume() { bool muted; unsigned int l, r; getVolume( l, r, muted ); return l; }
+ static unsigned int rightVolume() { bool muted; unsigned int l, r; getVolume( l, r, muted ); return r; }
+ static bool isMuted() { bool muted; unsigned int l, r; getVolume( l, r, muted ); return muted; }
+
+ static void increaseVolume() { setVolume( leftVolume() + 1968, rightVolume() + 1968, isMuted() ); }
+ static void decreaseVolume() { setVolume( leftVolume() - 1966, rightVolume() - 1966, isMuted() ); }
+
+public slots:
+ // Convinence functions derived from above functions
+ void setVolume( unsigned int level ) { setVolume( level, level, isMuted() ); }
+ void mute() { setVolume( leftVolume(), rightVolume(), TRUE ); }
+ void volumeChanged( bool muted );
+
+signals:
+ void completedIO();
+
+private:
+ AudioDevicePrivate *d;
+};
+
+
+#endif // AUDIODEVICE_H
+