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()) {
case Playable::AudioClipType:
outputItemPlayingNow = storage->acquireAudioClip(sessionId,
playable->getId());
outputPlayer->open(*outputItemPlayingNow->getUri());
outputPlayer->start();
break;
switch (playable->getType()) { case Playable::PlaylistType:
case Playable::AudioClipType: outputItemPlayingNow = storage->acquirePlaylist(sessionId,
outputItemPlayingNow = storage->acquireAudioClip(sessionId, playable->getId());
playable->getId()); outputPlayer->openAndStart(outputItemPlayingNow->getPlaylist());
outputPlayer->open(*outputItemPlayingNow->getUri()); break;
outputPlayer->start();
break; default: // this never happens
break;
case Playable::PlaylistType: }
outputItemPlayingNow = storage->acquirePlaylist(sessionId, } catch (XmlRpcException &e) {
playable->getId()); Ptr<Glib::ustring>::Ref eMsg
outputPlayer->openAndStart(outputItemPlayingNow->getPlaylist()); = getResourceUstring("audioErrorMsg");
break; eMsg->append(e.what());
displayMessageWindow(eMsg);
default: // this never happens } catch (std::invalid_argument &e) {
break; 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) {
switch (outputItemPlayingNow->getType()) { if (outputItemPlayingNow) {
case Playable::AudioClipType: switch (outputItemPlayingNow->getType()) {
storage->releaseAudioClip(sessionId, case Playable::AudioClipType:
outputItemPlayingNow->getAudioClip()); storage->releaseAudioClip(sessionId,
outputItemPlayingNow.reset(); outputItemPlayingNow->getAudioClip());
break; outputItemPlayingNow.reset();
case Playable::PlaylistType: break;
storage->releasePlaylist(sessionId, case Playable::PlaylistType:
outputItemPlayingNow->getPlaylist()); storage->releasePlaylist(sessionId,
outputItemPlayingNow.reset(); outputItemPlayingNow->getPlaylist());
break; outputItemPlayingNow.reset();
default: // this never happens break;
break; default: // this never happens
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()) {
case Playable::AudioClipType:
cueItemPlayingNow = storage->acquireAudioClip(sessionId,
playable->getId());
cuePlayer->open(*cueItemPlayingNow->getUri());
cuePlayer->start();
break;
switch (playable->getType()) { case Playable::PlaylistType:
case Playable::AudioClipType: cueItemPlayingNow = storage->acquirePlaylist(sessionId,
cueItemPlayingNow = storage->acquireAudioClip(sessionId, playable->getId());
playable->getId()); cuePlayer->openAndStart(cueItemPlayingNow->getPlaylist());
cuePlayer->open(*cueItemPlayingNow->getUri()); break;
cuePlayer->start();
break; default: // this never happens
break;
case Playable::PlaylistType: }
cueItemPlayingNow = storage->acquirePlaylist(sessionId, } catch (XmlRpcException &e) {
playable->getId()); Ptr<Glib::ustring>::Ref eMsg
cuePlayer->openAndStart(cueItemPlayingNow->getPlaylist()); = getResourceUstring("audioErrorMsg");
break; eMsg->append(e.what());
displayMessageWindow(eMsg);
default: // this never happens } catch (std::invalid_argument &e) {
break; 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) {
switch (cueItemPlayingNow->getType()) { if (cueItemPlayingNow) {
case Playable::AudioClipType: switch (cueItemPlayingNow->getType()) {
storage->releaseAudioClip(sessionId, case Playable::AudioClipType:
cueItemPlayingNow->getAudioClip()); storage->releaseAudioClip(sessionId,
cueItemPlayingNow.reset(); cueItemPlayingNow->getAudioClip());
break; cueItemPlayingNow.reset();
case Playable::PlaylistType: break;
storage->releasePlaylist(sessionId, case Playable::PlaylistType:
cueItemPlayingNow->getPlaylist()); storage->releasePlaylist(sessionId,
cueItemPlayingNow.reset(); cueItemPlayingNow->getPlaylist());
break; cueItemPlayingNow.reset();
default: // this never happens break;
break; default: // this never happens
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
{ {