changed audio listener interface to use plain pointers insteas of Ptr<>::Ref

This commit is contained in:
fgerlits 2005-04-15 10:52:39 +00:00
parent 8b56186766
commit 19da95806a
4 changed files with 49 additions and 66 deletions

View file

@ -21,8 +21,8 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Author : $Author: maroy $
Version : $Revision: 1.10 $
Author : $Author: fgerlits $
Version : $Revision: 1.11 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/playlistExecutor/include/LiveSupport/PlaylistExecutor/AudioPlayerInterface.h,v $
------------------------------------------------------------------------------*/
@ -68,8 +68,8 @@ using namespace LiveSupport::Core;
/**
* A generic interface for playing audio files.
*
* @author $Author: maroy $
* @version $Revision: 1.10 $
* @author $Author: fgerlits $
* @version $Revision: 1.11 $
*/
class AudioPlayerInterface
{
@ -106,7 +106,7 @@ class AudioPlayerInterface
* @see #detach
*/
virtual void
attachListener(Ptr<AudioPlayerEventListener>::Ref eventListener)
attachListener(AudioPlayerEventListener* eventListener)
throw () = 0;
/**
@ -120,7 +120,7 @@ class AudioPlayerInterface
* @see #attach
*/
virtual void
detachListener(Ptr<AudioPlayerEventListener>::Ref eventListener)
detachListener(AudioPlayerEventListener* eventListener)
throw (std::invalid_argument) = 0;
/**

View file

@ -21,8 +21,8 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Author : $Author: maroy $
Version : $Revision: 1.19 $
Author : $Author: fgerlits $
Version : $Revision: 1.20 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/playlistExecutor/src/Attic/HelixPlayer.cxx,v $
------------------------------------------------------------------------------*/
@ -273,7 +273,7 @@ HelixPlayer :: deInitialize(void) throw ()
* Attach an event listener.
*----------------------------------------------------------------------------*/
void
HelixPlayer :: attachListener(Ptr<AudioPlayerEventListener>::Ref eventListener)
HelixPlayer :: attachListener(AudioPlayerEventListener* eventListener)
throw ()
{
listeners.push_back(eventListener);
@ -284,14 +284,14 @@ HelixPlayer :: attachListener(Ptr<AudioPlayerEventListener>::Ref eventListener)
* Detach an event listener.
*----------------------------------------------------------------------------*/
void
HelixPlayer :: detachListener(Ptr<AudioPlayerEventListener>::Ref eventListener)
HelixPlayer :: detachListener(AudioPlayerEventListener* eventListener)
throw (std::invalid_argument)
{
ListenerVector::iterator it = listeners.begin();
ListenerVector::iterator end = listeners.end();
while (it != end) {
if ((*it).get() == eventListener.get()) {
if (*it == eventListener) {
listeners.erase(it);
return;
}

View file

@ -21,8 +21,8 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Author : $Author: maroy $
Version : $Revision: 1.16 $
Author : $Author: fgerlits $
Version : $Revision: 1.17 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/playlistExecutor/src/Attic/HelixPlayer.h,v $
------------------------------------------------------------------------------*/
@ -111,8 +111,8 @@ using namespace LiveSupport::Core;
* <!ATTLIST helixPlayer fadeLookAheatTime #IMPLIED >
* </pre></code>
*
* @author $Author: maroy $
* @version $Revision: 1.16 $
* @author $Author: fgerlits $
* @version $Revision: 1.17 $
*/
class HelixPlayer : virtual public Configurable,
virtual public AudioPlayerInterface,
@ -198,7 +198,7 @@ class HelixPlayer : virtual public Configurable,
* Just a shorthand notation, to make reference to the type
* easier.
*/
typedef std::vector<Ptr<AudioPlayerEventListener>::Ref>
typedef std::vector<AudioPlayerEventListener*>
ListenerVector;
/**
@ -322,7 +322,7 @@ class HelixPlayer : virtual public Configurable,
* @see #detach
*/
virtual void
attachListener(Ptr<AudioPlayerEventListener>::Ref eventListener)
attachListener(AudioPlayerEventListener* eventListener)
throw ();
/**
@ -334,7 +334,7 @@ class HelixPlayer : virtual public Configurable,
* @see #attach
*/
virtual void
detachListener(Ptr<AudioPlayerEventListener>::Ref eventListener)
detachListener(AudioPlayerEventListener* eventListener)
throw (std::invalid_argument);
/**

View file

@ -21,8 +21,8 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Author : $Author: maroy $
Version : $Revision: 1.11 $
Author : $Author: fgerlits $
Version : $Revision: 1.12 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/playlistExecutor/src/Attic/HelixPlayerTest.cxx,v $
------------------------------------------------------------------------------*/
@ -445,38 +445,27 @@ HelixPlayerTest :: eventListenerAttachTest(void)
Ptr<TestEventListener>::Ref listener1(new TestEventListener());
Ptr<TestEventListener>::Ref listener2(new TestEventListener());
bool gotException;
// try with one listener
helixPlayer->attachListener(listener1);
try {
helixPlayer->detachListener(listener1);
} catch (std::invalid_argument &e) {
CPPUNIT_FAIL(e.what());
}
gotException = false;
try {
helixPlayer->detachListener(listener1);
} catch (std::invalid_argument &e) {
gotException = true;
}
CPPUNIT_ASSERT(gotException);
helixPlayer->attachListener(listener1.get());
CPPUNIT_ASSERT_NO_THROW(
helixPlayer->detachListener(listener1.get())
);
CPPUNIT_ASSERT_THROW(
helixPlayer->detachListener(listener1.get()),
std::invalid_argument
);
// try with two listeners
helixPlayer->attachListener(listener1);
gotException = false;
try {
helixPlayer->detachListener(listener2);
} catch (std::invalid_argument &e) {
gotException = true;
}
CPPUNIT_ASSERT(gotException);
helixPlayer->attachListener(listener2);
try {
helixPlayer->detachListener(listener1);
} catch (std::invalid_argument &e) {
CPPUNIT_FAIL(e.what());
}
helixPlayer->attachListener(listener1.get());
CPPUNIT_ASSERT_THROW(
helixPlayer->detachListener(listener2.get()),
std::invalid_argument
);
helixPlayer->attachListener(listener2.get());
CPPUNIT_ASSERT_NO_THROW(
helixPlayer->detachListener(listener1.get());
);
helixPlayer->deInitialize();
}
@ -493,15 +482,13 @@ HelixPlayerTest :: eventListenerTest(void)
Ptr<time_duration>::Ref sleepT(new time_duration(microseconds(10)));
Ptr<TestEventListener>::Ref listener1(new TestEventListener());
helixPlayer->attachListener(listener1);
helixPlayer->attachListener(listener1.get());
// try with one listener
CPPUNIT_ASSERT(!listener1->stopFlag);
try {
CPPUNIT_ASSERT_NO_THROW(
helixPlayer->open("file:var/test.mp3");
} catch (std::invalid_argument &e) {
CPPUNIT_FAIL(e.what());
}
);
CPPUNIT_ASSERT(!helixPlayer->isPlaying());
CPPUNIT_ASSERT(!listener1->stopFlag);
helixPlayer->start();
@ -517,15 +504,13 @@ HelixPlayerTest :: eventListenerTest(void)
// try with two listeners
Ptr<TestEventListener>::Ref listener2(new TestEventListener());
helixPlayer->attachListener(listener2);
helixPlayer->attachListener(listener2.get());
CPPUNIT_ASSERT(!listener1->stopFlag);
CPPUNIT_ASSERT(!listener2->stopFlag);
try {
CPPUNIT_ASSERT_NO_THROW(
helixPlayer->open("file:var/test.mp3");
} catch (std::invalid_argument &e) {
CPPUNIT_FAIL(e.what());
}
);
CPPUNIT_ASSERT(!helixPlayer->isPlaying());
CPPUNIT_ASSERT(!listener1->stopFlag);
CPPUNIT_ASSERT(!listener2->stopFlag);
@ -545,14 +530,13 @@ HelixPlayerTest :: eventListenerTest(void)
listener2->stopFlag = false;
// try with only the second listener
helixPlayer->detachListener(listener1);
CPPUNIT_ASSERT_NO_THROW(
helixPlayer->detachListener(listener1.get());
);
CPPUNIT_ASSERT(!listener2->stopFlag);
try {
CPPUNIT_ASSERT_NO_THROW(
helixPlayer->open("file:var/test.mp3");
} catch (std::invalid_argument &e) {
CPPUNIT_FAIL(e.what());
}
);
CPPUNIT_ASSERT(!helixPlayer->isPlaying());
CPPUNIT_ASSERT(!listener2->stopFlag);
helixPlayer->start();
@ -566,7 +550,6 @@ HelixPlayerTest :: eventListenerTest(void)
CPPUNIT_ASSERT(listener2->stopFlag);
listener2->stopFlag = false;
helixPlayer->close();
helixPlayer->deInitialize();
}