Changed: Merge music player play/pause button into one, add stop button

--HG--
branch : develop
This commit is contained in:
Nimetu 2018-12-26 18:21:42 +02:00
parent 798494ffbf
commit fa16ca8dd9
2 changed files with 42 additions and 11 deletions

View file

@ -17,6 +17,9 @@
<variable entry="UI:SAVE:MP3_SHUFFLE"
type="sint32"
value="0" />
<variable entry="UI:TEMP:MP3_PLAYING"
type="sint32"
value="0" />
<!--******************-->
<!--* MP3 PLAYER *-->
<!--******************-->
@ -37,11 +40,11 @@
<ctrl type="button" id="btn" button_type="toggle_button" sizeref="wh" tx_normal="blank.tga" tx_pushed="blank.tga" tx_over="blank.tga" scale="true"
color="255 255 255 0" col_pushed="255 255 255 0" col_over="255 255 255 90"
global_color_normal="true" global_color_pushed="true" global_color_over="true"
ondblclick_l="music_player" params_dblclick_l="song=#index" />
ondblclick_l="music_player" params_dblclick_l="song=#index" />
<view type="bitmap" id="bg" posref="MM MM" sizeref="wh" color="200 200 200 50" texture="blank.tga" scale="true" active="false" />
<view type="text" id="title" posref="ML ML" x="0" line_maxw="#line_maxw" fontsize="8" shadow="true" multi_line="true" multi_line_space="0" />
<view type="text" id="duration" posref="MR MR" x="0" fontsize="8" shadow="true" color="255 255 255 150" />
<view type="text" id="duration" posref="MR MR" x="0" fontsize="8" shadow="true" color="255 255 255 150" />
</group>
</template>
@ -50,6 +53,17 @@
<action handler="music_player" params="update_playlist" />
</proc>
<proc id="proc_mp3_update_tooltip">
<action handler="lua" params="getUI('ui:interface:mp3_player:controls:but_play').tooltip = i18n.get('uiMP3Play')" cond="eq(@UI:TEMP:MP3_PLAYING,0)" />
<action handler="lua" params="getUI('ui:interface:mp3_player:controls:but_play').tooltip = i18n.get('uiMP3Pause')" cond="eq(@UI:TEMP:MP3_PLAYING,1)" />
</proc>
<proc id="proc_mp3_but_play">
<action handler="set" params="dblink=UI:TEMP:MP3_PLAYING|value=not(@UI:TEMP:MP3_PLAYING)" />
<action handler="music_player" params="play" cond="eq(@UI:TEMP:MP3_PLAYING,1)" />
<action handler="music_player" params="pause" cond="eq(@UI:TEMP:MP3_PLAYING,0)" />
</proc>
<group type="modal"
id="playlist"
posparent="mp3_player"
@ -203,26 +217,30 @@
tooltip="uiMP3Prev" />
<ctrl type="button"
id="but_play"
button_type="push_button"
button_type="toggle_button"
posref="MM MM"
posparent="slot2"
tx_normal="mp3_button_play.tga"
tx_pushed="mp3_button_play.tga"
tx_pushed="mp3_button_pause.tga"
tx_over="mp3_button_over.tga"
onclick_l="music_player"
params_l="play"
onclick_l="proc"
params_l="proc_mp3_but_play"
tooltip="uiMP3Play" />
<!-- TODO: but_stop is using placeholder texture -->
<ctrl type="button"
id="but_pause"
id="but_stop"
button_type="push_button"
posref="MM MM"
posparent="slot3"
tx_normal="mp3_button_pause.tga"
tx_pushed="mp3_button_pause.tga"
tx_normal="w_button_10_choice.tga"
tx_pushed="w_button_10_choice.tga"
tx_over="mp3_button_over.tga"
scale="true"
w="20"
h="16"
onclick_l="music_player"
params_l="pause"
tooltip="uiMP3Pause" />
params_l="stop"
tooltip="uiMP3Stop" />
<ctrl type="button"
id="but_next"
button_type="push_button"
@ -312,6 +330,8 @@
posref="TL TL"
w="48"
h="20" />
<link expr="@UI:TEMP:MP3_PLAYING" target="but_play:pushed" action="proc" params="proc_mp3_update_tooltip" />
</group>
<!-- SCREEN -->
<group id="screen"

View file

@ -174,6 +174,7 @@ void CMusicPlayer::play (sint index)
if(!SoundMngr)
return;
sint prevSongIndex = _CurrentSongIndex;
if (index >= 0 && index < (sint)_Songs.size())
@ -208,6 +209,8 @@ void CMusicPlayer::play (sint index)
_CurrentSong = _Songs[_CurrentSongIndex];
updatePlaylist(prevSongIndex);
NLGUI::CDBManager::getInstance()->getDbProp("UI:TEMP:MP3_PLAYING")->setValueBool(true);
}
}
@ -217,6 +220,7 @@ void CMusicPlayer::pause ()
{
if(!SoundMngr)
return;
// pause the music only if we are really playing (else risk to pause a background music!)
if(_State==Playing)
{
@ -225,6 +229,8 @@ void CMusicPlayer::pause ()
if (_PlayStart > 0)
_PauseTime = CTime::getLocalTime() - _PlayStart;
NLGUI::CDBManager::getInstance()->getDbProp("UI:TEMP:MP3_PLAYING")->setValueBool(false);
}
}
@ -234,11 +240,14 @@ void CMusicPlayer::stop ()
{
if(!SoundMngr)
return;
// stop the music only if we are really playing (else risk to stop a background music!)
SoundMngr->stopMusic(0);
_State = Stopped;
_PlayStart = 0;
_PauseTime = 0;
NLGUI::CDBManager::getInstance()->getDbProp("UI:TEMP:MP3_PLAYING")->setValueBool(false);
}
// ***************************************************************************
@ -446,6 +455,8 @@ public:
MusicPlayer.previous();
else if (Params == "play")
MusicPlayer.play();
else if (Params == "stop")
MusicPlayer.stop();
else if (Params == "pause")
MusicPlayer.pause();
else if (Params == "next")