mirror of
https://github.com/owntone/owntone-server.git
synced 2025-04-01 02:03:45 -04:00
[input] Cleaning up
This commit is contained in:
parent
107fa3634b
commit
b56b56af07
65
src/input.c
65
src/input.c
@ -41,9 +41,9 @@
|
|||||||
#include "commands.h"
|
#include "commands.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
|
|
||||||
// Disallow further writes to the buffer when its size is larger than this threshold
|
// Disallow further writes to the buffer when its size exceeds this threshold.
|
||||||
// TODO untie from 44100
|
// The below gives us room to buffer 2 seconds of 48000/16/2 audio.
|
||||||
#define INPUT_BUFFER_THRESHOLD STOB(88200, 16, 2)
|
#define INPUT_BUFFER_THRESHOLD STOB(96000, 16, 2)
|
||||||
// How long (in sec) to wait for player read before looping in playback thread
|
// How long (in sec) to wait for player read before looping in playback thread
|
||||||
#define INPUT_LOOP_TIMEOUT 1
|
#define INPUT_LOOP_TIMEOUT 1
|
||||||
|
|
||||||
@ -360,65 +360,6 @@ stop_cmd(void *arg, int *retval)
|
|||||||
return COMMAND_END;
|
return COMMAND_END;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
static enum command_state
|
|
||||||
next(void *arg, int *retval)
|
|
||||||
{
|
|
||||||
struct player_status status;
|
|
||||||
struct db_queue_item *queue_item;
|
|
||||||
uint32_t item_id;
|
|
||||||
int type;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
// We may have finished reading source way before end of playback, and we
|
|
||||||
// don't want to proceed prematurely. So we wait until the input buffer is
|
|
||||||
// below the write threshold.
|
|
||||||
ret = input_wait();
|
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
input_next(); // Async call to ourselves
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
item_id = input_now_reading.item_id;
|
|
||||||
|
|
||||||
// Cleans up the source that has ended/failed and clears input_now_reading
|
|
||||||
stop(NULL, NULL);
|
|
||||||
|
|
||||||
player_get_status(&status);
|
|
||||||
|
|
||||||
// TODO what about repeat/repeat_all? Maybe move next() to player that can
|
|
||||||
// just call input_start()
|
|
||||||
|
|
||||||
// Get the next queue_item from the db
|
|
||||||
queue_item = db_queue_fetch_next(item_id, status.shuffle);
|
|
||||||
if (!queue_item)
|
|
||||||
{
|
|
||||||
DPRINTF(E_DBG, L_PLAYER, "Reached end of playback queue\n");
|
|
||||||
*retval = 0;
|
|
||||||
return COMMAND_END;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = setup(&input_now_reading, queue_item, 0);
|
|
||||||
free_queue_item(queue_item, 0);
|
|
||||||
if (ret < 0)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
DPRINTF(E_DBG, L_PLAYER, "Continuing input read loop for item '%s' (item id %" PRIu32 ")\n", input_now_reading.path, input_now_reading.item_id);
|
|
||||||
|
|
||||||
event_active(inputev, 0, 0);
|
|
||||||
|
|
||||||
*retval = 0;
|
|
||||||
return COMMAND_END;
|
|
||||||
|
|
||||||
error:
|
|
||||||
input_write(NULL, NULL, INPUT_FLAG_ERROR);
|
|
||||||
clear(&input_now_reading);
|
|
||||||
*retval = -1;
|
|
||||||
return COMMAND_END;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
static enum command_state
|
static enum command_state
|
||||||
metadata_get(void *arg, int *retval)
|
metadata_get(void *arg, int *retval)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user