diff options
Diffstat (limited to 'tqtinterface/qt4/src/kernel/tqsound.cpp')
-rw-r--r-- | tqtinterface/qt4/src/kernel/tqsound.cpp | 316 |
1 files changed, 0 insertions, 316 deletions
diff --git a/tqtinterface/qt4/src/kernel/tqsound.cpp b/tqtinterface/qt4/src/kernel/tqsound.cpp deleted file mode 100644 index 4a6e96b..0000000 --- a/tqtinterface/qt4/src/kernel/tqsound.cpp +++ /dev/null @@ -1,316 +0,0 @@ -/**************************************************************************** -** -** Implementation of TQSound class and TQAuServer internal class -** -** Created : 000117 -** -** Copyright (C) 1999-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the kernel module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqsound.h" - -#ifndef TQT_NO_SOUND - -#include "tqptrlist.h" - -static TQPtrList<TQAuServer> *servers=0; - -TQAuServer::TQAuServer(TQObject* parent, const char* name) : - TQObject(parent,name) -{ - if ( !servers ) { - servers = new TQPtrList<TQAuServer>; - // ### add cleanup - } - servers->prepend(this); -} - -TQAuServer::~TQAuServer() -{ - servers->remove(this); - if ( servers->count() == 0 ) { - delete servers; - servers = 0; - } -} - -void TQAuServer::play(const TQString& filename) -{ - TQSound s(filename); - play(&s); -} - -extern TQAuServer* qt_new_audio_server(); - -static TQAuServer& server() -{ - if (!servers) qt_new_audio_server(); - return *servers->first(); -} - -class TQSoundData { -public: - TQSoundData(const TQString& fname) : - filename(fname), bucket(0), looprem(0), looptotal(1) - { - } - - ~TQSoundData() - { - delete bucket; - } - - TQString filename; - TQAuBucket* bucket; - int looprem; - int looptotal; -}; - -/*! - \class TQSound tqsound.h - \brief The TQSound class provides access to the platform audio facilities. - - \ingroup multimedia - \mainclass - - TQt provides the most commonly required audio operation in GUI - applications: asynchronously playing a sound file. This is most - easily accomplished with a single call: - \code - TQSound::play("mysounds/bells.wav"); - \endcode - - A second API is provided in which a TQSound object is created from - a sound file and is played later: - \code - TQSound bells("mysounds/bells.wav"); - - bells.play(); - \endcode - - Sounds played using the second model may use more memory but play - more immediately than sounds played using the first model, - depending on the underlying platform audio facilities. - - On Microsoft Windows the underlying multimedia system is used; - only WAVE format sound files are supported. - - On X11 the \link ftp://ftp.x.org/contrib/audio/nas/ Network Audio - System\endlink is used if available, otherwise all operations work - silently. NAS supports WAVE and AU files. - - On Macintosh, ironically, we use QT (\link - http://quicktime.apple.com QuickTime\endlink) for sound, this - means all QuickTime formats are supported by TQt/Mac. - - On TQt/Embedded, a built-in mixing sound server is used, which - accesses \c /dev/dsp directly. Only the WAVE format is supported. - - The availability of sound can be tested with - TQSound::isAvailable(). -*/ - -/*! - \fn static bool TQSound::available() - - Returns TRUE if sound support is available; otherwise returns FALSE. -*/ - -/*! - Plays the sound in a file called \a filename. -*/ -void TQSound::play(const TQString& filename) -{ - server().play(filename); -} - -/*! - Constructs a TQSound that can quickly play the sound in a file - named \a filename. - - This may use more memory than the static \c play function. - - The \a parent and \a name arguments (default 0) are passed on to - the TQObject constructor. -*/ -TQSound::TQSound(const TQString& filename, TQObject* parent, const char* name) : - TQObject(parent,name), - d(new TQSoundData(filename)) -{ - server().init(this); -} - -/*! - Destroys the sound object. If the sound is not finished playing stop() is called on it. - - \sa stop() isFinished() -*/ -TQSound::~TQSound() -{ - if ( !isFinished() ) - stop(); - delete d; -} - -/*! - Returns TRUE if the sound has finished playing; otherwise returns FALSE. - - \warning On Windows this function always returns TRUE for unlooped sounds. -*/ -bool TQSound::isFinished() const -{ - return d->looprem == 0; -} - -/*! - \overload - - Starts the sound playing. The function returns immediately. - Depending on the platform audio facilities, other sounds may stop - or may be mixed with the new sound. - - The sound can be played again at any time, possibly mixing or - replacing previous plays of the sound. -*/ -void TQSound::play() -{ - d->looprem = d->looptotal; - server().play(this); -} - -/*! - Returns the number of times the sound will play. -*/ -int TQSound::loops() const -{ - return d->looptotal; -} - -/*! - Returns the number of times the sound will loop. This value - decreases each time the sound loops. -*/ -int TQSound::loopsRemaining() const -{ - return d->looprem; -} - -/*! - Sets the sound to repeat \a l times when it is played. Passing the - value -1 will cause the sound to loop indefinitely. - - \sa loops() -*/ -void TQSound::setLoops(int l) -{ - d->looptotal = l; -} - -/*! - Returns the filename associated with the sound. -*/ -TQString TQSound::fileName() const -{ - return d->filename; -} - -/*! - Stops the sound playing. - - On Windows the current loop will finish if a sound is played - in a loop. - - \sa play() -*/ -void TQSound::stop() -{ - server().stop(this); -} - - -/*! - Returns TRUE if sound facilities exist on the platform; otherwise - returns FALSE. An application may choose either to notify the user - if sound is crucial to the application or to operate silently - without bothering the user. - - If no sound is available, all TQSound operations work silently and - quickly. -*/ -bool TQSound::isAvailable() -{ - return server().okay(); -} - -/*! - Sets the internal bucket record of sound \a s to \a b, deleting - any previous setting. -*/ -void TQAuServer::setBucket(TQSound* s, TQAuBucket* b) -{ - delete s->d->bucket; - s->d->bucket = b; -} - -/*! - Returns the internal bucket record of sound \a s. -*/ -TQAuBucket* TQAuServer::bucket(TQSound* s) -{ - return s->d->bucket; -} - -/*! - Decrements the TQSound::loopRemaining() value for sound \a s, - returning the result. -*/ -int TQAuServer::decLoop(TQSound* s) -{ - if ( s->d->looprem > 0 ) - --s->d->looprem; - return s->d->looprem; -} - -/*! - Initializes the sound. The default implementation does nothing. -*/ -void TQAuServer::init(TQSound*) -{ -} - -TQAuBucket::~TQAuBucket() -{ -} - -#endif // TQT_NO_SOUND |