mirror of
https://github.com/owntone/owntone-server.git
synced 2025-01-28 15:06:02 -05:00
[player/spotify] adjust spotify integration to refactoring of player
This commit is contained in:
parent
e1147c00a1
commit
58069e67f8
16
src/player.c
16
src/player.c
@ -874,7 +874,7 @@ stream_setup(struct player_source *ps, struct media_file_info *mfi)
|
|||||||
|
|
||||||
case DATA_KIND_SPOTIFY:
|
case DATA_KIND_SPOTIFY:
|
||||||
#ifdef HAVE_SPOTIFY_H
|
#ifdef HAVE_SPOTIFY_H
|
||||||
ret = spotify_playback_play(mfi); //TODO [player] split spotify setup/play into separate functions
|
ret = spotify_playback_setup(mfi);
|
||||||
#else
|
#else
|
||||||
ret = -1;
|
ret = -1;
|
||||||
#endif
|
#endif
|
||||||
@ -904,13 +904,13 @@ stream_play(struct player_source *ps)
|
|||||||
|
|
||||||
if (!ps)
|
if (!ps)
|
||||||
{
|
{
|
||||||
DPRINTF(E_LOG, L_PLAYER, "Stream pause called with no active streaming player source\n");
|
DPRINTF(E_LOG, L_PLAYER, "Stream play called with no active streaming player source\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ps->setup_done)
|
if (!ps->setup_done)
|
||||||
{
|
{
|
||||||
DPRINTF(E_LOG, L_PLAYER, "Given player source not setup, pause not possible\n");
|
DPRINTF(E_LOG, L_PLAYER, "Given player source not setup, play not possible\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -924,7 +924,7 @@ stream_play(struct player_source *ps)
|
|||||||
|
|
||||||
#ifdef HAVE_SPOTIFY_H
|
#ifdef HAVE_SPOTIFY_H
|
||||||
case DATA_KIND_SPOTIFY:
|
case DATA_KIND_SPOTIFY:
|
||||||
ret = spotify_playback_resume();
|
ret = spotify_playback_play();
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1022,7 +1022,7 @@ stream_pause(struct player_source *ps)
|
|||||||
|
|
||||||
#ifdef HAVE_SPOTIFY_H
|
#ifdef HAVE_SPOTIFY_H
|
||||||
case DATA_KIND_SPOTIFY:
|
case DATA_KIND_SPOTIFY:
|
||||||
spotify_playback_pause_nonblock(); //TODO [player] spotify blocking pause command missing
|
spotify_playback_pause();
|
||||||
ret = 0;
|
ret = 0;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
@ -1162,7 +1162,7 @@ stream_cleanup(struct player_source *ps)
|
|||||||
|
|
||||||
case DATA_KIND_SPOTIFY:
|
case DATA_KIND_SPOTIFY:
|
||||||
#ifdef HAVE_SPOTIFY_H
|
#ifdef HAVE_SPOTIFY_H
|
||||||
spotify_playback_stop(); //TODO [player] spotify cleanup functions
|
spotify_playback_stop(); //TODO [player] spotify cleanup functions?
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1530,6 +1530,10 @@ source_read(uint8_t *buf, int len, uint64_t rtptime)
|
|||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
ret = source_play();
|
||||||
|
if (ret < 0)
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -912,12 +912,12 @@ audio_fifo_flush(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
playback_play(struct spotify_command *cmd)
|
playback_setup(struct spotify_command *cmd)
|
||||||
{
|
{
|
||||||
sp_track *track;
|
sp_track *track;
|
||||||
sp_error err;
|
sp_error err;
|
||||||
|
|
||||||
DPRINTF(E_DBG, L_SPOTIFY, "Starting playback\n");
|
DPRINTF(E_DBG, L_SPOTIFY, "Setting up for playback\n");
|
||||||
|
|
||||||
if (SP_CONNECTION_STATE_LOGGED_IN != fptr_sp_session_connectionstate(g_sess))
|
if (SP_CONNECTION_STATE_LOGGED_IN != fptr_sp_session_connectionstate(g_sess))
|
||||||
{
|
{
|
||||||
@ -947,6 +947,16 @@ playback_play(struct spotify_command *cmd)
|
|||||||
|
|
||||||
audio_fifo_flush();
|
audio_fifo_flush();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
playback_play(struct spotify_command *cmd)
|
||||||
|
{
|
||||||
|
sp_error err;
|
||||||
|
|
||||||
|
DPRINTF(E_DBG, L_SPOTIFY, "Starting playback\n");
|
||||||
|
|
||||||
err = fptr_sp_session_player_play(g_sess, 1);
|
err = fptr_sp_session_player_play(g_sess, 1);
|
||||||
if (SP_ERROR_OK != err)
|
if (SP_ERROR_OK != err)
|
||||||
{
|
{
|
||||||
@ -1626,13 +1636,13 @@ notify_cb(int fd, short what, void *arg)
|
|||||||
|
|
||||||
/* Thread: player */
|
/* Thread: player */
|
||||||
int
|
int
|
||||||
spotify_playback_play(struct media_file_info *mfi)
|
spotify_playback_setup(struct media_file_info *mfi)
|
||||||
{
|
{
|
||||||
struct spotify_command cmd;
|
struct spotify_command cmd;
|
||||||
sp_link *link;
|
sp_link *link;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
DPRINTF(E_DBG, L_SPOTIFY, "Playback request\n");
|
DPRINTF(E_DBG, L_SPOTIFY, "Playback setup request\n");
|
||||||
|
|
||||||
link = fptr_sp_link_create_from_string(mfi->path);
|
link = fptr_sp_link_create_from_string(mfi->path);
|
||||||
if (!link)
|
if (!link)
|
||||||
@ -1643,7 +1653,7 @@ spotify_playback_play(struct media_file_info *mfi)
|
|||||||
|
|
||||||
command_init(&cmd);
|
command_init(&cmd);
|
||||||
|
|
||||||
cmd.func = playback_play;
|
cmd.func = playback_setup;
|
||||||
cmd.arg.link = link;
|
cmd.arg.link = link;
|
||||||
|
|
||||||
ret = sync_command(&cmd);
|
ret = sync_command(&cmd);
|
||||||
@ -1653,6 +1663,46 @@ spotify_playback_play(struct media_file_info *mfi)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
spotify_playback_play()
|
||||||
|
{
|
||||||
|
struct spotify_command cmd;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
DPRINTF(E_DBG, L_SPOTIFY, "Playback request\n");
|
||||||
|
|
||||||
|
command_init(&cmd);
|
||||||
|
|
||||||
|
cmd.func = playback_play;
|
||||||
|
cmd.arg.noarg = NULL;
|
||||||
|
|
||||||
|
ret = sync_command(&cmd);
|
||||||
|
|
||||||
|
command_deinit(&cmd);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
spotify_playback_pause()
|
||||||
|
{
|
||||||
|
struct spotify_command cmd;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
DPRINTF(E_DBG, L_SPOTIFY, "Pause request\n");
|
||||||
|
|
||||||
|
command_init(&cmd);
|
||||||
|
|
||||||
|
cmd.func = playback_pause;
|
||||||
|
cmd.arg.noarg = NULL;
|
||||||
|
|
||||||
|
ret = sync_command(&cmd);
|
||||||
|
|
||||||
|
command_deinit(&cmd);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* Thread: libspotify */
|
/* Thread: libspotify */
|
||||||
void
|
void
|
||||||
spotify_playback_pause_nonblock(void)
|
spotify_playback_pause_nonblock(void)
|
||||||
|
@ -11,7 +11,13 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
spotify_playback_play(struct media_file_info *mfi);
|
spotify_playback_setup(struct media_file_info *mfi);
|
||||||
|
|
||||||
|
int
|
||||||
|
spotify_playback_play();
|
||||||
|
|
||||||
|
int
|
||||||
|
spotify_playback_pause();
|
||||||
|
|
||||||
void
|
void
|
||||||
spotify_playback_pause_nonblock(void);
|
spotify_playback_pause_nonblock(void);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user