raop: Add back initial volume RTSP SET_PARAMETER request on connect

Regression introduced in commit 8c6407f:
raop: Merge TCP and UDP code paths + refactoring

Anyway, we need to determine if initial volume has to be setup before
sending RECORD or after:

- Setting it up *before* shouldn't be a problem: sink.c waits for
CONNECT state, set the volume and client.c triggers RECORD only once
he's got the SET_PARAMETER reply from server.

- Setting it up *after* seems to be more difficult if we try not to
send any audio before receiving the SET_PARAMETER reply form server. A
solution may be to send SET_PARAMETER just after the RECORD server
response is received and hope that it get processed by server during the
2sec latency/buffering time...

Attached patch implement that last solution. Works for me, but I cannot
guaranty it will with your hardware...
This commit is contained in:
Martin Blanchard 2016-11-06 12:54:21 -06:00 committed by Tanu Kaskinen
parent b81ceb6707
commit cd09b88691

View file

@ -95,6 +95,8 @@ enum {
static void userdata_free(struct userdata *u);
static void sink_set_volume_cb(pa_sink *s);
static void raop_state_cb(pa_raop_state_t state, void *userdata) {
struct userdata *u = userdata;
@ -228,6 +230,9 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
/* Our stream has been suspended so we just flush it... */
pa_rtpoll_set_timer_disabled(u->rtpoll);
pa_raop_client_flush(u->raop);
} else {
/* Set the initial volume */
sink_set_volume_cb(u->sink);
}
return 0;