Hand the stream socket to the rt thread

This commit is contained in:
João Paulo Rechi Vita 2008-08-11 22:54:09 -03:00 committed by Lennart Poettering
parent 255f9b0fe6
commit f992296b97

View file

@ -113,6 +113,10 @@ static const char* const valid_modargs[] = {
NULL NULL
}; };
enum {
SINK_MESSAGE_PASS_SOCKET = PA_SINK_MESSAGE_MAX
};
static int bt_audioservice_send(int sk, const bt_audio_msg_header_t *msg) { static int bt_audioservice_send(int sk, const bt_audio_msg_header_t *msg) {
int e; int e;
pa_log/*_debug*/("sending %s", bt_audio_strmsg(msg->msg_type)); pa_log/*_debug*/("sending %s", bt_audio_strmsg(msg->msg_type));
@ -545,15 +549,15 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
break; break;
} }
// case SINK_MESSAGE_PASS_SOCKET: { case SINK_MESSAGE_PASS_SOCKET: {
// struct pollfd *pollfd; struct pollfd *pollfd;
// pa_assert(!u->rtpoll_item); pa_assert(!u->rtpoll_item);
// u->rtpoll_item = pa_rtpoll_item_new(u->rtpoll, PA_RTPOLL_NEVER, 1); u->rtpoll_item = pa_rtpoll_item_new(u->rtpoll, PA_RTPOLL_NEVER, 1);
// pollfd = pa_rtpoll_item_get_pollfd(u->rtpoll_item, NULL); pollfd = pa_rtpoll_item_get_pollfd(u->rtpoll_item, NULL);
// pollfd->fd = u->fd; pollfd->fd = u->stream_fd;
// pollfd->events = pollfd->revents = 0; pollfd->events = pollfd->revents = 0;
// return 0; return 0;
// } }
} }
return pa_sink_process_msg(o, code, data, offset, chunk); return pa_sink_process_msg(o, code, data, offset, chunk);
@ -809,6 +813,9 @@ int pa__init(pa_module* m) {
} }
pa_sink_put(u->sink); pa_sink_put(u->sink);
/* hand the socket to the rt thread */
pa_asyncmsgq_post(u->thread_mq.inq, PA_MSGOBJECT(u->sink), SINK_MESSAGE_PASS_SOCKET, NULL, 0, NULL, NULL);
pa_modargs_free(ma); pa_modargs_free(ma);
return 0; return 0;