Skip to content

Commit

Permalink
MythMusic: Add the hostname to the MUSIC_COMMAND event messages.
Browse files Browse the repository at this point in the history
This just makes sure only the local FE will respond to the messages when sent
from a MythUIWebBrowser.
  • Loading branch information
Paul Harrison committed Dec 23, 2010
1 parent a127698 commit b17df76
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 32 deletions.
40 changes: 21 additions & 19 deletions mythplugins/mythmusic/mythmusic/musicplayer.cpp
Expand Up @@ -487,32 +487,33 @@ void MusicPlayer::customEvent(QEvent *event)
}
else if (me->Message().left(13) == "MUSIC_COMMAND")
{
QStringList list = me->Message().split(' ');
QStringList list = me->Message().simplified().split(' ');

if (list.size() >= 2)
if (list.size() >= 3 && list[1] == gCoreContext->GetHostName())
{
if (list[1] == "PLAY")
if (list[2] == "PLAY")
play();
else if (list[1] == "STOP")
else if (list[2] == "STOP")
stop();
else if (list[1] == "PAUSE")
else if (list[2] == "PAUSE")
pause();
else if (list[1] == "SET_VOLUME")
else if (list[2] == "SET_VOLUME")
{
if (list.size() >= 3)
{
int volume = list[2].toInt();
int volume = list[3].toInt();
if (volume >= 0 && volume <= 100)
setVolume(volume);
}
}
else if (list[1] == "GET_VOLUME")
else if (list[2] == "GET_VOLUME")
{
QString message = QString("MUSIC_CONTROL ANSWER %1").arg(getVolume());
QString message = QString("MUSIC_CONTROL ANSWER %1 %2")
.arg(gCoreContext->GetHostName()).arg(getVolume());
MythEvent me(message);
gCoreContext->dispatch(me);
}
else if (list[1] == "PLAY_FILE")
else if (list[2] == "PLAY_FILE")
{
int start = me->Message().indexOf("'");
int end = me->Message().lastIndexOf("'");
Expand All @@ -527,40 +528,41 @@ void MusicPlayer::customEvent(QEvent *event)
else
VERBOSE(VB_IMPORTANT, QString("MusicPlayer: got invalid MUSIC_COMMAND PLAY_FILE - %1").arg(me->Message()));
}
else if (list[1] == "PLAY_URL")
else if (list[2] == "PLAY_URL")
{
if (list.size() == 3)
if (list.size() == 4)
{
QString filename = list[2];
QString filename = list[3];
Metadata mdata;
mdata.setFilename(filename);
playFile(mdata);
}
else
VERBOSE(VB_IMPORTANT, QString("MusicPlayer: got invalid MUSIC_COMMAND PLAY_URL - %1").arg(me->Message()));
}
else if (list[1] == "PLAY_TRACK")
else if (list[2] == "PLAY_TRACK")
{
if (list.size() == 3)
if (list.size() == 4)
{
int trackID = list[2].toInt();
int trackID = list[3].toInt();
Metadata *mdata = gMusicData->all_music->getMetadata(trackID);
if (mdata)
playFile(*mdata);
}
else
VERBOSE(VB_IMPORTANT, QString("MusicPlayer: got invalid MUSIC_COMMAND PLAY_TRACK - %1").arg(me->Message()));
}
else if (list[1] == "GET_METADATA")
else if (list[2] == "GET_METADATA")
{
QString mdataStr;
Metadata *mdata = getCurrentMetadata();
if (mdata)
mdataStr = QString("%1 by %2 from %3").arg(mdata->Title()).arg(mdata->Artist()).arg(mdata->Album());
else
mdataStr = "Unknown Track";
mdataStr = "Unknown Track2";

QString message = QString("MUSIC_CONTROL ANSWER %1").arg(mdataStr);
QString message = QString("MUSIC_CONTROL ANSWER %1 %2")
.arg(gCoreContext->GetHostName()).arg(mdataStr);
MythEvent me(message);
gCoreContext->dispatch(me);
}
Expand Down
32 changes: 19 additions & 13 deletions mythtv/libs/libmythui/mythuiwebbrowser.cpp
Expand Up @@ -63,33 +63,35 @@ void BrowserApi::attachObject(void)

void BrowserApi::Play(void)
{
MythEvent me(QString("MUSIC_COMMAND PLAY"));
MythEvent me(QString("MUSIC_COMMAND %1 PLAY").arg(gCoreContext->GetHostName()));
gCoreContext->dispatch(me);
}

void BrowserApi::Stop(void)
{
MythEvent me(QString("MUSIC_COMMAND STOP"));
MythEvent me(QString("MUSIC_COMMAND %1 STOP").arg(gCoreContext->GetHostName()));
gCoreContext->dispatch(me);
}

void BrowserApi::Pause(void)
{
MythEvent me(QString("MUSIC_COMMAND PAUSE"));
MythEvent me(QString("MUSIC_COMMAND %1 PAUSE %1").arg(gCoreContext->GetHostName()));
gCoreContext->dispatch(me);
}

void BrowserApi::SetVolume(int volumn)
{
MythEvent me(QString("MUSIC_COMMAND SET_VOLUME %1").arg(volumn));
MythEvent me(QString("MUSIC_COMMAND %1 SET_VOLUME %2")
.arg(gCoreContext->GetHostName()).arg(volumn));
gCoreContext->dispatch(me);
}

int BrowserApi::GetVolume(void)
{
m_gotAnswer = false;

MythEvent me(QString("MUSIC_COMMAND GET_VOLUME"));
MythEvent me(QString("MUSIC_COMMAND %1 GET_VOLUME")
.arg(gCoreContext->GetHostName()));
gCoreContext->dispatch(me);

QTime timer;
Expand All @@ -108,27 +110,31 @@ int BrowserApi::GetVolume(void)

void BrowserApi::PlayFile(QString filename)
{
MythEvent me(QString("MUSIC_COMMAND PLAY_FILE '%1'").arg(filename));
MythEvent me(QString("MUSIC_COMMAND %1 PLAY_FILE '%2'")
.arg(gCoreContext->GetHostName()).arg(filename));
gCoreContext->dispatch(me);
}

void BrowserApi::PlayTrack(int trackID)
{
MythEvent me(QString("MUSIC_COMMAND PLAY_TRACK %1").arg(trackID));
MythEvent me(QString("MUSIC_COMMAND %1 PLAY_TRACK %2")
.arg(gCoreContext->GetHostName()).arg(trackID));
gCoreContext->dispatch(me);
}

void BrowserApi::PlayURL(QString url)
{
MythEvent me(QString("MUSIC_COMMAND PLAY_URL %1").arg(url));
MythEvent me(QString("MUSIC_COMMAND %1 PLAY_URL %2")
.arg(gCoreContext->GetHostName()).arg(url));
gCoreContext->dispatch(me);
}

QString BrowserApi::GetMetadata(void)
{
m_gotAnswer = false;

MythEvent me(QString("MUSIC_COMMAND GET_METADATA"));
MythEvent me(QString("MUSIC_COMMAND %1 GET_METADATA")
.arg(gCoreContext->GetHostName()));
gCoreContext->dispatch(me);

QTime timer;
Expand Down Expand Up @@ -156,11 +162,11 @@ void BrowserApi::customEvent(QEvent *e)
return;

QStringList tokens = message.simplified().split(" ");
if ((tokens.size() >= 3) &&
(tokens[1] == "ANSWER"))
if ((tokens.size() >= 4) && (tokens[1] == "ANSWER")
&& (tokens[2] == gCoreContext->GetHostName()))
{
m_answer = tokens[2];
for (int i = 3; i < tokens.size(); i++)
m_answer = tokens[3];
for (int i = 4; i < tokens.size(); i++)
m_answer += QString(" ") + tokens[i];
m_gotAnswer = true;
}
Expand Down

0 comments on commit b17df76

Please sign in to comment.