diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-08-07 13:22:23 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-08-07 13:22:23 +0000 |
commit | 7e659adad7d58d0b211d28519b50ac7b5d6ced2d (patch) | |
tree | 352a503f3b9d1fc994d0c105b49816992bdb68da /pjsip-apps/src/pjsua/main.c | |
parent | 0f726e6d59f037f16ec85ea37d46b45d8c381278 (diff) |
Added Ctrl-C handler for pjsua Windows, and added average bps in media statistic.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@660 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip-apps/src/pjsua/main.c')
-rw-r--r-- | pjsip-apps/src/pjsua/main.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/pjsip-apps/src/pjsua/main.c b/pjsip-apps/src/pjsua/main.c index 7775687d..9541e849 100644 --- a/pjsip-apps/src/pjsua/main.c +++ b/pjsip-apps/src/pjsua/main.c @@ -28,11 +28,57 @@ pj_status_t app_init(int argc, char *argv[]); pj_status_t app_main(void); pj_status_t app_destroy(void); + +#if defined(PJ_WIN32) && PJ_WIN32!=0 +#include <windows.h> + +static pj_thread_desc handler_desc; + +static BOOL WINAPI CtrlHandler(DWORD fdwCtrlType) +{ + pj_thread_t *thread; + + switch (fdwCtrlType) + { + // Handle the CTRL+C signal. + + case CTRL_C_EVENT: + case CTRL_CLOSE_EVENT: + case CTRL_BREAK_EVENT: + case CTRL_LOGOFF_EVENT: + case CTRL_SHUTDOWN_EVENT: + pj_thread_register("ctrlhandler", handler_desc, &thread); + PJ_LOG(3,(THIS_FILE, "Ctrl-C detected, quitting..")); + app_destroy(); + ExitProcess(1); + return TRUE; + + default: + + return FALSE; + } +} + +static void setup_signal_handler(void) +{ + SetConsoleCtrlHandler(&CtrlHandler, TRUE); +} + +#else + +static void setup_signal_handler(void) +{ +} + +#endif + int main(int argc, char *argv[]) { if (app_init(argc, argv) != PJ_SUCCESS) return 1; + setup_signal_handler(); + app_main(); app_destroy(); |