+ /* Go backward or forward */
+ if( !p_playlist->request.b_request || !p_playlist->request.p_item ||
+ p_playlist->request.i_skip == 1 )
+ p_playlist->i_random_index++;
+ else
+ p_playlist->i_random_index--;
+ /* Handle bounds situations */
+ if( p_playlist->i_random_index == -1 )
+ {
+ if( !b_loop || p_playlist->i_random == 0 ) goto end;
+ p_playlist->i_random_index = p_playlist->i_random - 1;
+ }
+ else if( p_playlist->i_random_index == p_playlist->i_random )
+ {
+ if( !b_loop || p_playlist->i_random == 0 ) goto end;
+ p_playlist->i_random_index = 0;
+ }