mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-06-02 12:45:14 -06:00
cellMusicDecode: Fix track selection on prev/next track
This commit is contained in:
parent
883a6889e0
commit
fa1aa9dcf3
@ -74,6 +74,7 @@ struct music_decode
|
|||||||
cellMusicDecode.notice("set_decode_command(START): context: %s", current_selection_context.to_string());
|
cellMusicDecode.notice("set_decode_command(START): context: %s", current_selection_context.to_string());
|
||||||
|
|
||||||
music_selection_context context = current_selection_context;
|
music_selection_context context = current_selection_context;
|
||||||
|
context.current_track = context.first_track;
|
||||||
|
|
||||||
for (usz i = 0; i < context.playlist.size(); i++)
|
for (usz i = 0; i < context.playlist.size(); i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -465,7 +465,7 @@ namespace utils
|
|||||||
stop();
|
stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void audio_decoder::set_context(music_selection_context context)
|
void audio_decoder::set_context(music_selection_context&& context)
|
||||||
{
|
{
|
||||||
m_context = std::move(context);
|
m_context = std::move(context);
|
||||||
}
|
}
|
||||||
@ -714,8 +714,6 @@ namespace utils
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_context.current_track = m_context.first_track;
|
|
||||||
|
|
||||||
if (m_context.context_option == CELL_SEARCH_CONTEXTOPTION_SHUFFLE && m_context.playlist.size() > 1)
|
if (m_context.context_option == CELL_SEARCH_CONTEXTOPTION_SHUFFLE && m_context.playlist.size() > 1)
|
||||||
{
|
{
|
||||||
// Shuffle once if necessary
|
// Shuffle once if necessary
|
||||||
@ -740,8 +738,12 @@ namespace utils
|
|||||||
|
|
||||||
// Let's only decode one track at a time. Wait for the consumer to finish reading the track.
|
// Let's only decode one track at a time. Wait for the consumer to finish reading the track.
|
||||||
media_log.notice("audio_decoder: waiting until track is consumed...");
|
media_log.notice("audio_decoder: waiting until track is consumed...");
|
||||||
thread_ctrl::wait_on(track_fully_consumed, 0);
|
|
||||||
track_fully_consumed = false;
|
while (thread_ctrl::state() != thread_state::aborting && !track_fully_consumed)
|
||||||
|
{
|
||||||
|
thread_ctrl::wait_on(track_fully_consumed, 0);
|
||||||
|
}
|
||||||
|
track_fully_consumed = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
media_log.notice("audio_decoder: finished playlist");
|
media_log.notice("audio_decoder: finished playlist");
|
||||||
|
|||||||
@ -63,7 +63,7 @@ namespace utils
|
|||||||
audio_decoder();
|
audio_decoder();
|
||||||
~audio_decoder();
|
~audio_decoder();
|
||||||
|
|
||||||
void set_context(music_selection_context context);
|
void set_context(music_selection_context&& context);
|
||||||
void set_swap_endianness(bool swapped);
|
void set_swap_endianness(bool swapped);
|
||||||
void clear();
|
void clear();
|
||||||
void stop();
|
void stop();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user