mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-14 18:57:07 -07:00
Message Box on Session Quit
This commit is contained in:
parent
8e15f498c2
commit
f886995295
8 changed files with 87 additions and 14 deletions
|
@ -63,9 +63,12 @@ typedef enum {
|
|||
CHIAKI_QUIT_REASON_SESSION_REQUEST_RP_IN_USE,
|
||||
CHIAKI_QUIT_REASON_SESSION_REQUEST_RP_CRASH,
|
||||
CHIAKI_QUIT_REASON_CTRL_UNKNOWN,
|
||||
CHIAKI_QUIT_REASON_CTRL_CONNECTION_REFUSED
|
||||
CHIAKI_QUIT_REASON_CTRL_CONNECTION_REFUSED,
|
||||
CHIAKI_QUIT_REASON_STREAM_CONNECTION_UNKNOWN
|
||||
} ChiakiQuitReason;
|
||||
|
||||
CHIAKI_EXPORT const char *chiaki_quit_reason_string(ChiakiQuitReason reason);
|
||||
|
||||
typedef struct chiaki_quit_event_t
|
||||
{
|
||||
ChiakiQuitReason reason;
|
||||
|
@ -78,8 +81,7 @@ typedef struct chiaki_audio_stream_info_event_t
|
|||
|
||||
|
||||
typedef enum {
|
||||
CHIAKI_EVENT_QUIT,
|
||||
CHIAKI_EVENT_AUDIO_STREAM_INFO
|
||||
CHIAKI_EVENT_QUIT
|
||||
} ChiakiEventType;
|
||||
|
||||
typedef struct chiaki_event_t
|
||||
|
@ -88,7 +90,6 @@ typedef struct chiaki_event_t
|
|||
union
|
||||
{
|
||||
ChiakiQuitEvent quit;
|
||||
ChiakiAudioStreamInfoEvent audio_stream_info;
|
||||
};
|
||||
} ChiakiEvent;
|
||||
|
||||
|
|
|
@ -326,7 +326,7 @@ static ChiakiErrorCode ctrl_connect(ChiakiCtrl *ctrl)
|
|||
{
|
||||
int errsv = errno;
|
||||
CHIAKI_LOGE(&session->log, "Ctrl connect failed: %s", strerror(errsv));
|
||||
ctrl_failed(ctrl, errsv == ECONNREFUSED ? CHIAKI_QUIT_REASON_SESSION_REQUEST_CONNECTION_REFUSED : CHIAKI_QUIT_REASON_CTRL_UNKNOWN);
|
||||
ctrl_failed(ctrl, errsv == ECONNREFUSED ? CHIAKI_QUIT_REASON_CTRL_CONNECTION_REFUSED : CHIAKI_QUIT_REASON_CTRL_UNKNOWN);
|
||||
close(sock);
|
||||
return CHIAKI_ERR_NETWORK;
|
||||
}
|
||||
|
|
|
@ -43,6 +43,31 @@
|
|||
|
||||
#define SESSION_EXPECT_TIMEOUT_MS 5000
|
||||
|
||||
CHIAKI_EXPORT const char *chiaki_quit_reason_string(ChiakiQuitReason reason)
|
||||
{
|
||||
switch(reason)
|
||||
{
|
||||
case CHIAKI_QUIT_REASON_STOPPED:
|
||||
return "Stopped";
|
||||
case CHIAKI_QUIT_REASON_SESSION_REQUEST_UNKNOWN:
|
||||
return "Unknown Session Request Error";
|
||||
case CHIAKI_QUIT_REASON_SESSION_REQUEST_CONNECTION_REFUSED:
|
||||
return "Connection Refused in Session Request";
|
||||
case CHIAKI_QUIT_REASON_SESSION_REQUEST_RP_IN_USE:
|
||||
return "Remote Play on Console is already in use";
|
||||
case CHIAKI_QUIT_REASON_SESSION_REQUEST_RP_CRASH:
|
||||
return "Remote Play on Console has crashed";
|
||||
case CHIAKI_QUIT_REASON_CTRL_UNKNOWN:
|
||||
return "Unknown Ctrl Error";
|
||||
case CHIAKI_QUIT_REASON_CTRL_CONNECTION_REFUSED:
|
||||
return "Connection Refused in Ctrl";
|
||||
case CHIAKI_QUIT_REASON_STREAM_CONNECTION_UNKNOWN:
|
||||
return "Unknown Error in Stream Connection";
|
||||
case CHIAKI_QUIT_REASON_NONE:
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
static void *session_thread_func(void *arg);
|
||||
|
||||
|
@ -291,9 +316,15 @@ static void *session_thread_func(void *arg)
|
|||
err = chiaki_stream_connection_run(&session->stream_connection);
|
||||
chiaki_mutex_lock(&session->state_mutex);
|
||||
if(err != CHIAKI_ERR_SUCCESS && err != CHIAKI_ERR_CANCELED)
|
||||
{
|
||||
CHIAKI_LOGE(&session->log, "StreamConnection run failed");
|
||||
session->quit_reason = CHIAKI_QUIT_REASON_STREAM_CONNECTION_UNKNOWN;
|
||||
}
|
||||
else
|
||||
{
|
||||
CHIAKI_LOGI(&session->log, "StreamConnection completed successfully");
|
||||
session->quit_reason = CHIAKI_QUIT_REASON_STOPPED;
|
||||
}
|
||||
|
||||
chiaki_video_receiver_free(session->video_receiver);
|
||||
session->video_receiver = NULL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue