mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-14 18:57:07 -07:00
Show Stream States nicely on Android
This commit is contained in:
parent
37e5de2b0f
commit
88db8c8840
12 changed files with 185 additions and 12 deletions
|
@ -111,6 +111,7 @@ typedef struct chiaki_audio_stream_info_event_t
|
|||
|
||||
|
||||
typedef enum {
|
||||
CHIAKI_EVENT_CONNECTED,
|
||||
CHIAKI_EVENT_LOGIN_PIN_REQUEST,
|
||||
CHIAKI_EVENT_QUIT
|
||||
} ChiakiEventType;
|
||||
|
|
|
@ -276,7 +276,7 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_session_set_login_pin(ChiakiSession *sessio
|
|||
return CHIAKI_ERR_SUCCESS;
|
||||
}
|
||||
|
||||
static void session_send_event(ChiakiSession *session, ChiakiEvent *event)
|
||||
void chiaki_session_send_event(ChiakiSession *session, ChiakiEvent *event)
|
||||
{
|
||||
if(!session->event_cb)
|
||||
return;
|
||||
|
@ -376,7 +376,7 @@ static void *session_thread_func(void *arg)
|
|||
ChiakiEvent event = { 0 };
|
||||
event.type = CHIAKI_EVENT_LOGIN_PIN_REQUEST;
|
||||
event.login_pin_request.pin_incorrect = pin_incorrect;
|
||||
session_send_event(session, &event);
|
||||
chiaki_session_send_event(session, &event);
|
||||
pin_incorrect = true;
|
||||
|
||||
chiaki_cond_timedwait_pred(&session->state_cond, &session->state_mutex, UINT64_MAX, session_check_state_pred_pin, session);
|
||||
|
@ -502,7 +502,7 @@ quit:
|
|||
quit_event.type = CHIAKI_EVENT_QUIT;
|
||||
quit_event.quit.reason = session->quit_reason;
|
||||
quit_event.quit.reason_str = session->quit_reason_str;
|
||||
session_send_event(session, &quit_event);
|
||||
chiaki_session_send_event(session, &quit_event);
|
||||
return NULL;
|
||||
|
||||
#undef CHECK_STOP
|
||||
|
|
|
@ -55,6 +55,7 @@ typedef enum {
|
|||
STATE_EXPECT_STREAMINFO
|
||||
} StreamConnectionState;
|
||||
|
||||
void chiaki_session_send_event(ChiakiSession *session, ChiakiEvent *event);
|
||||
|
||||
static void stream_connection_takion_cb(ChiakiTakionEvent *event, void *user);
|
||||
static void stream_connection_takion_data(ChiakiStreamConnection *stream_connection, ChiakiTakionMessageDataType data_type, uint8_t *buf, size_t buf_size);
|
||||
|
@ -243,6 +244,14 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_stream_connection_run(ChiakiStreamConnectio
|
|||
stream_connection->state = STATE_IDLE;
|
||||
stream_connection->state_finished = false;
|
||||
stream_connection->state_failed = false;
|
||||
|
||||
ChiakiEvent event = { 0 };
|
||||
event.type = CHIAKI_EVENT_CONNECTED;
|
||||
chiaki_mutex_unlock(&stream_connection->state_mutex);
|
||||
chiaki_session_send_event(session, &event);
|
||||
err = chiaki_mutex_lock(&stream_connection->state_mutex);
|
||||
assert(err == CHIAKI_ERR_SUCCESS);
|
||||
|
||||
while(true)
|
||||
{
|
||||
err = chiaki_cond_timedwait_pred(&stream_connection->state_cond, &stream_connection->state_mutex, HEARTBEAT_INTERVAL_MS, state_finished_cond_check, stream_connection);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue