added some try-catch clauses to try and fix bug 928 (has not worked yet)

This commit is contained in:
fgerlits 2005-05-06 21:14:44 +00:00
parent 32376178d3
commit acbc6aac27
4 changed files with 132 additions and 98 deletions

View file

@ -22,7 +22,7 @@
Author : $Author: fgerlits $ Author : $Author: fgerlits $
Version : $Revision: 1.38 $ Version : $Revision: 1.39 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/GLiveSupport.cxx,v $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/GLiveSupport.cxx,v $
------------------------------------------------------------------------------*/ ------------------------------------------------------------------------------*/
@ -602,7 +602,7 @@ GLiveSupport :: addToLiveMode(Ptr<Playable>::Ref playable)
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
void void
LiveSupport :: GLiveSupport :: LiveSupport :: GLiveSupport ::
GLiveSupport :: onStop(void) throw () GLiveSupport :: onStop(void) throw ()
{ {
Ptr<Playable>::Ref playable; Ptr<Playable>::Ref playable;
masterPanel->setNowPlaying(playable); // reset to empty masterPanel->setNowPlaying(playable); // reset to empty
@ -758,31 +758,45 @@ GLiveSupport :: deletePlayable(Ptr<Playable>::Ref playable)
void void
LiveSupport :: GLiveSupport :: LiveSupport :: GLiveSupport ::
GLiveSupport :: playOutputAudio(Ptr<Playable>::Ref playable) GLiveSupport :: playOutputAudio(Ptr<Playable>::Ref playable)
throw (XmlRpcException, throw (std::logic_error)
std::invalid_argument,
std::logic_error,
std::runtime_error)
{ {
if (outputItemPlayingNow) { try {
stopOutputAudio(); // stop the audio player and release old resources if (outputItemPlayingNow) {
} stopOutputAudio(); // stop the audio player and
} // release old resources
switch (playable->getType()) { switch (playable->getType()) {
case Playable::AudioClipType: case Playable::AudioClipType:
outputItemPlayingNow = storage->acquireAudioClip(sessionId, outputItemPlayingNow = storage->acquireAudioClip(sessionId,
playable->getId()); playable->getId());
outputPlayer->open(*outputItemPlayingNow->getUri()); outputPlayer->open(*outputItemPlayingNow->getUri());
outputPlayer->start(); outputPlayer->start();
break; break;
case Playable::PlaylistType: case Playable::PlaylistType:
outputItemPlayingNow = storage->acquirePlaylist(sessionId, outputItemPlayingNow = storage->acquirePlaylist(sessionId,
playable->getId()); playable->getId());
outputPlayer->openAndStart(outputItemPlayingNow->getPlaylist()); outputPlayer->openAndStart(outputItemPlayingNow->getPlaylist());
break; break;
default: // this never happens default: // this never happens
break; break;
}
} catch (XmlRpcException &e) {
Ptr<Glib::ustring>::Ref eMsg
= getResourceUstring("audioErrorMsg");
eMsg->append(e.what());
displayMessageWindow(eMsg);
} catch (std::invalid_argument &e) {
Ptr<Glib::ustring>::Ref eMsg
= getResourceUstring("audioErrorMsg");
eMsg->append(e.what());
displayMessageWindow(eMsg);
} catch (std::runtime_error &e) {
Ptr<Glib::ustring>::Ref eMsg
= getResourceUstring("audioErrorMsg");
eMsg->append(e.what());
displayMessageWindow(eMsg);
} }
outputPlayerIsPaused = false; outputPlayerIsPaused = false;
@ -814,26 +828,32 @@ GLiveSupport :: pauseOutputAudio(void)
void void
LiveSupport :: GLiveSupport :: LiveSupport :: GLiveSupport ::
GLiveSupport :: stopOutputAudio(void) GLiveSupport :: stopOutputAudio(void)
throw (XmlRpcException, throw (std::logic_error)
std::logic_error)
{ {
outputPlayer->close(); try {
outputPlayer->close();
if (outputItemPlayingNow) { if (outputItemPlayingNow) {
switch (outputItemPlayingNow->getType()) { switch (outputItemPlayingNow->getType()) {
case Playable::AudioClipType: case Playable::AudioClipType:
storage->releaseAudioClip(sessionId, storage->releaseAudioClip(sessionId,
outputItemPlayingNow->getAudioClip()); outputItemPlayingNow->getAudioClip());
outputItemPlayingNow.reset(); outputItemPlayingNow.reset();
break; break;
case Playable::PlaylistType: case Playable::PlaylistType:
storage->releasePlaylist(sessionId, storage->releasePlaylist(sessionId,
outputItemPlayingNow->getPlaylist()); outputItemPlayingNow->getPlaylist());
outputItemPlayingNow.reset(); outputItemPlayingNow.reset();
break; break;
default: // this never happens default: // this never happens
break; break;
}
} }
} catch (XmlRpcException &e) {
Ptr<Glib::ustring>::Ref eMsg
= getResourceUstring("audioErrorMsg");
eMsg->append(e.what());
displayMessageWindow(eMsg);
} }
outputPlayerIsPaused = false; outputPlayerIsPaused = false;
@ -846,31 +866,45 @@ GLiveSupport :: stopOutputAudio(void)
void void
LiveSupport :: GLiveSupport :: LiveSupport :: GLiveSupport ::
GLiveSupport :: playCueAudio(Ptr<Playable>::Ref playable) GLiveSupport :: playCueAudio(Ptr<Playable>::Ref playable)
throw (XmlRpcException, throw (std::logic_error)
std::invalid_argument,
std::logic_error,
std::runtime_error)
{ {
if (cueItemPlayingNow) { try {
stopCueAudio(); // stop the audio player and release old resources if (cueItemPlayingNow) {
} stopCueAudio(); // stop the audio player and
} // release old resources
switch (playable->getType()) { switch (playable->getType()) {
case Playable::AudioClipType: case Playable::AudioClipType:
cueItemPlayingNow = storage->acquireAudioClip(sessionId, cueItemPlayingNow = storage->acquireAudioClip(sessionId,
playable->getId()); playable->getId());
cuePlayer->open(*cueItemPlayingNow->getUri()); cuePlayer->open(*cueItemPlayingNow->getUri());
cuePlayer->start(); cuePlayer->start();
break; break;
case Playable::PlaylistType: case Playable::PlaylistType:
cueItemPlayingNow = storage->acquirePlaylist(sessionId, cueItemPlayingNow = storage->acquirePlaylist(sessionId,
playable->getId()); playable->getId());
cuePlayer->openAndStart(cueItemPlayingNow->getPlaylist()); cuePlayer->openAndStart(cueItemPlayingNow->getPlaylist());
break; break;
default: // this never happens default: // this never happens
break; break;
}
} catch (XmlRpcException &e) {
Ptr<Glib::ustring>::Ref eMsg
= getResourceUstring("audioErrorMsg");
eMsg->append(e.what());
displayMessageWindow(eMsg);
} catch (std::invalid_argument &e) {
Ptr<Glib::ustring>::Ref eMsg
= getResourceUstring("audioErrorMsg");
eMsg->append(e.what());
displayMessageWindow(eMsg);
} catch (std::runtime_error &e) {
Ptr<Glib::ustring>::Ref eMsg
= getResourceUstring("audioErrorMsg");
eMsg->append(e.what());
displayMessageWindow(eMsg);
} }
cuePlayerIsPaused = false; cuePlayerIsPaused = false;
@ -902,26 +936,32 @@ GLiveSupport :: pauseCueAudio(void)
void void
LiveSupport :: GLiveSupport :: LiveSupport :: GLiveSupport ::
GLiveSupport :: stopCueAudio(void) GLiveSupport :: stopCueAudio(void)
throw (XmlRpcException, throw (std::logic_error)
std::logic_error)
{ {
cuePlayer->close(); try {
cuePlayer->close();
if (cueItemPlayingNow) { if (cueItemPlayingNow) {
switch (cueItemPlayingNow->getType()) { switch (cueItemPlayingNow->getType()) {
case Playable::AudioClipType: case Playable::AudioClipType:
storage->releaseAudioClip(sessionId, storage->releaseAudioClip(sessionId,
cueItemPlayingNow->getAudioClip()); cueItemPlayingNow->getAudioClip());
cueItemPlayingNow.reset(); cueItemPlayingNow.reset();
break; break;
case Playable::PlaylistType: case Playable::PlaylistType:
storage->releasePlaylist(sessionId, storage->releasePlaylist(sessionId,
cueItemPlayingNow->getPlaylist()); cueItemPlayingNow->getPlaylist());
cueItemPlayingNow.reset(); cueItemPlayingNow.reset();
break; break;
default: // this never happens default: // this never happens
break; break;
}
} }
} catch (XmlRpcException &e) {
Ptr<Glib::ustring>::Ref eMsg
= getResourceUstring("audioErrorMsg");
eMsg->append(e.what());
displayMessageWindow(eMsg);
} }
cuePlayerIsPaused = false; cuePlayerIsPaused = false;

View file

@ -22,7 +22,7 @@
Author : $Author: fgerlits $ Author : $Author: fgerlits $
Version : $Revision: 1.31 $ Version : $Revision: 1.32 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/GLiveSupport.h,v $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/GLiveSupport.h,v $
------------------------------------------------------------------------------*/ ------------------------------------------------------------------------------*/
@ -101,7 +101,7 @@ class MasterPanelWindow;
* respective documentation. * respective documentation.
* *
* @author $Author: fgerlits $ * @author $Author: fgerlits $
* @version $Revision: 1.31 $ * @version $Revision: 1.32 $
* @see LocalizedObject#getBundle(const xmlpp::Element &) * @see LocalizedObject#getBundle(const xmlpp::Element &)
* @see AuthenticationClientFactory * @see AuthenticationClientFactory
* @see StorageClientFactory * @see StorageClientFactory
@ -588,10 +588,7 @@ class GLiveSupport : public LocalizedConfigurable,
*/ */
virtual void virtual void
playOutputAudio(Ptr<Playable>::Ref playable) playOutputAudio(Ptr<Playable>::Ref playable)
throw (XmlRpcException, throw (std::logic_error);
std::invalid_argument,
std::logic_error,
std::runtime_error);
/** /**
* Stop the output audio player. * Stop the output audio player.
@ -601,8 +598,7 @@ class GLiveSupport : public LocalizedConfigurable,
*/ */
virtual void virtual void
stopOutputAudio(void) stopOutputAudio(void)
throw (XmlRpcException, throw (std::logic_error);
std::logic_error);
/** /**
* Pause the output audio player. * Pause the output audio player.
@ -624,10 +620,7 @@ class GLiveSupport : public LocalizedConfigurable,
*/ */
virtual void virtual void
playCueAudio(Ptr<Playable>::Ref playable) playCueAudio(Ptr<Playable>::Ref playable)
throw (XmlRpcException, throw (std::logic_error);
std::invalid_argument,
std::logic_error,
std::runtime_error);
/** /**
* Stop the cue audio player. * Stop the cue audio player.
@ -637,8 +630,7 @@ class GLiveSupport : public LocalizedConfigurable,
*/ */
virtual void virtual void
stopCueAudio(void) stopCueAudio(void)
throw (XmlRpcException, throw (std::logic_error);
std::logic_error);
/** /**
* Pause the cue audio player. * Pause the cue audio player.

View file

@ -16,6 +16,7 @@ hu:table
schedulerNotReachableMsg:string { "Az időzítő szerver nem elérhető" } schedulerNotReachableMsg:string { "Az időzítő szerver nem elérhető" }
storageNotReachableMsg:string { "A tároló szerver nem elérhető" } storageNotReachableMsg:string { "A tároló szerver nem elérhető" }
authenticationNotReachableMsg:string { "A beléptető szerver nem elérhető" } authenticationNotReachableMsg:string { "A beléptető szerver nem elérhető" }
audioErrorMsg { "Hiba történt a lejátszáskor: " }
loginWindow:table loginWindow:table
{ {

View file

@ -17,6 +17,7 @@ root:table
storageNotReachableMsg:string { "Storage server not available" } storageNotReachableMsg:string { "Storage server not available" }
authenticationNotReachableMsg:string authenticationNotReachableMsg:string
{ "Authentication server not available" } { "Authentication server not available" }
audioErrorMsg { "Audio player error: " }
loginWindow:table loginWindow:table
{ {