mirror of
https://github.com/owntone/owntone-server.git
synced 2025-04-25 12:53:09 -04:00
[player] Add player_playback_start_byid() function, will be needed for pipe input
This commit is contained in:
parent
f27fb53caf
commit
e6793b4779
46
src/player.c
46
src/player.c
@ -2057,21 +2057,47 @@ playback_start_item(void *arg, int *retval)
|
|||||||
return COMMAND_END;
|
return COMMAND_END;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static enum command_state
|
||||||
|
playback_start_id(void *arg, int *retval)
|
||||||
|
{
|
||||||
|
struct db_queue_item *queue_item = NULL;
|
||||||
|
union player_arg *cmdarg = arg;
|
||||||
|
enum command_state cmd_state;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
*retval = -1;
|
||||||
|
|
||||||
|
if (player_state == PLAY_STOPPED)
|
||||||
|
{
|
||||||
|
db_queue_clear();
|
||||||
|
|
||||||
|
ret = db_queue_add_by_fileid(cmdarg->id, 0, 0);
|
||||||
|
if (ret < 0)
|
||||||
|
return COMMAND_END;
|
||||||
|
|
||||||
|
queue_item = db_queue_fetch_byfileid(cmdarg->id);
|
||||||
|
if (!queue_item)
|
||||||
|
return COMMAND_END;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd_state = playback_start_item(queue_item, retval);
|
||||||
|
return cmd_state;
|
||||||
|
}
|
||||||
|
|
||||||
static enum command_state
|
static enum command_state
|
||||||
playback_start(void *arg, int *retval)
|
playback_start(void *arg, int *retval)
|
||||||
{
|
{
|
||||||
struct db_queue_item *queue_item = NULL;
|
struct db_queue_item *queue_item = NULL;
|
||||||
enum command_state cmd_state;
|
enum command_state cmd_state;
|
||||||
|
|
||||||
|
*retval = -1;
|
||||||
|
|
||||||
if (player_state == PLAY_STOPPED)
|
if (player_state == PLAY_STOPPED)
|
||||||
{
|
{
|
||||||
// Start playback of first item in queue
|
// Start playback of first item in queue
|
||||||
queue_item = db_queue_fetch_bypos(0, shuffle);
|
queue_item = db_queue_fetch_bypos(0, shuffle);
|
||||||
if (!queue_item)
|
if (!queue_item)
|
||||||
{
|
return COMMAND_END;
|
||||||
*retval = -1;
|
|
||||||
return COMMAND_END;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd_state = playback_start_item(queue_item, retval);
|
cmd_state = playback_start_item(queue_item, retval);
|
||||||
@ -2781,6 +2807,18 @@ player_playback_start_byitem(struct db_queue_item *queue_item)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
player_playback_start_byid(uint32_t id)
|
||||||
|
{
|
||||||
|
union player_arg cmdarg;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
cmdarg.id = id;
|
||||||
|
|
||||||
|
ret = commands_exec_sync(cmdbase, playback_start_id, playback_start_bh, &cmdarg);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
player_playback_stop(void)
|
player_playback_stop(void)
|
||||||
{
|
{
|
||||||
|
@ -92,6 +92,9 @@ player_playback_start(void);
|
|||||||
int
|
int
|
||||||
player_playback_start_byitem(struct db_queue_item *queue_item);
|
player_playback_start_byitem(struct db_queue_item *queue_item);
|
||||||
|
|
||||||
|
int
|
||||||
|
player_playback_start_byid(uint32_t id);
|
||||||
|
|
||||||
int
|
int
|
||||||
player_playback_stop(void);
|
player_playback_stop(void);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user