summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/src/kernel/tqsound.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tqtinterface/qt4/src/kernel/tqsound.cpp')
-rw-r--r--tqtinterface/qt4/src/kernel/tqsound.cpp316
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