added some try-catch clauses to try and fix bug 928 (has not worked yet)
This commit is contained in:
parent
32376178d3
commit
acbc6aac27
4 changed files with 132 additions and 98 deletions
|
@ -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;
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue