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

View file

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

View file

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

View file

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