mirror of
https://github.com/owntone/owntone-server.git
synced 2025-01-14 08:15:02 -05:00
Maintain current playlist ID in the player state
cur_plid is 0 if not playing a playlist and takes the playlist ID otherwise.
This commit is contained in:
parent
94b4cd2459
commit
98aaa7c5fa
38
src/player.c
38
src/player.c
@ -170,6 +170,7 @@ static struct player_source *source_head;
|
|||||||
static struct player_source *shuffle_head;
|
static struct player_source *shuffle_head;
|
||||||
static struct player_source *cur_playing;
|
static struct player_source *cur_playing;
|
||||||
static struct player_source *cur_streaming;
|
static struct player_source *cur_streaming;
|
||||||
|
static uint32_t cur_plid;
|
||||||
static struct evbuffer *audio_buf;
|
static struct evbuffer *audio_buf;
|
||||||
|
|
||||||
|
|
||||||
@ -1490,6 +1491,8 @@ get_status(void *arg)
|
|||||||
|
|
||||||
status->volume = volume;
|
status->volume = volume;
|
||||||
|
|
||||||
|
status->plid = cur_plid;
|
||||||
|
|
||||||
switch (player_state)
|
switch (player_state)
|
||||||
{
|
{
|
||||||
case PLAY_STOPPED:
|
case PLAY_STOPPED:
|
||||||
@ -2412,6 +2415,9 @@ queue_add(void *arg)
|
|||||||
shuffle_head = ps_shuffle;
|
shuffle_head = ps_shuffle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cur_plid != 0)
|
||||||
|
cur_plid = 0;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2433,6 +2439,23 @@ queue_clear(void *arg)
|
|||||||
source_free(ps);
|
source_free(ps);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cur_plid = 0;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
queue_plid(void *arg)
|
||||||
|
{
|
||||||
|
uint32_t *plid;
|
||||||
|
|
||||||
|
if (!source_head)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
plid = (uint32_t *)arg;
|
||||||
|
|
||||||
|
cur_plid = *plid;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2797,6 +2820,20 @@ player_queue_clear(void)
|
|||||||
pthread_mutex_unlock(&cmd_lck);
|
pthread_mutex_unlock(&cmd_lck);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
player_queue_plid(uint32_t plid)
|
||||||
|
{
|
||||||
|
pthread_mutex_lock(&cmd_lck);
|
||||||
|
|
||||||
|
cmd.func = queue_plid;
|
||||||
|
cmd.func_bh = NULL;
|
||||||
|
cmd.arg = &plid;
|
||||||
|
|
||||||
|
sync_command();
|
||||||
|
|
||||||
|
pthread_mutex_unlock(&cmd_lck);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Thread: main (mdns) */
|
/* Thread: main (mdns) */
|
||||||
static void
|
static void
|
||||||
@ -3126,6 +3163,7 @@ player_init(void)
|
|||||||
shuffle_head = NULL;
|
shuffle_head = NULL;
|
||||||
cur_playing = NULL;
|
cur_playing = NULL;
|
||||||
cur_streaming = NULL;
|
cur_streaming = NULL;
|
||||||
|
cur_plid = 0;
|
||||||
|
|
||||||
player_state = PLAY_STOPPED;
|
player_state = PLAY_STOPPED;
|
||||||
repeat = REPEAT_OFF;
|
repeat = REPEAT_OFF;
|
||||||
|
@ -39,6 +39,7 @@ struct player_status {
|
|||||||
|
|
||||||
int volume;
|
int volume;
|
||||||
|
|
||||||
|
uint32_t plid;
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
uint32_t pos_ms;
|
uint32_t pos_ms;
|
||||||
int pos_pl;
|
int pos_pl;
|
||||||
@ -106,6 +107,9 @@ player_queue_add(struct player_source *ps);
|
|||||||
void
|
void
|
||||||
player_queue_clear(void);
|
player_queue_clear(void);
|
||||||
|
|
||||||
|
void
|
||||||
|
player_queue_plid(uint32_t plid);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
player_set_updatefd(int fd);
|
player_set_updatefd(int fd);
|
||||||
|
Loading…
Reference in New Issue
Block a user