X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-cli.git;a=blobdiff_plain;f=anykey.c;h=eaa53f627aeb2af08243316bf64c478861448e34;hp=f0ab52efe6548a9654822781670acd4ab80d046d;hb=ee639fb40fa43aa3553ef0229def9bcdb8338c2b;hpb=1999ae06a4d06ea323218707f8e8a3c59ed404e7 diff --git a/anykey.c b/anykey.c index f0ab52e..eaa53f6 100644 --- a/anykey.c +++ b/anykey.c @@ -1,5 +1,5 @@ /* - * This file is part of the sigrok project. + * This file is part of the sigrok-cli project. * * Copyright (C) 2011 Bert Vermeulen * @@ -26,7 +26,6 @@ #include #include #include -#include #include "sigrok-cli.h" #ifdef _WIN32 @@ -36,20 +35,22 @@ static DWORD stdin_mode; static struct termios term_orig; #endif -static int received_anykey(int fd, int revents, void *user_data) +static int received_anykey(int fd, int revents, void *cb_data) { - /* Avoid compiler warnings. */ + struct sr_session *session; + (void)fd; (void)revents; - (void)user_data; - sr_session_stop(); + session = cb_data; + sr_session_source_remove(session, STDIN_FILENO); + sr_session_stop(session); return TRUE; } /* Turn off buffering on stdin. */ -void add_anykey(void) +void add_anykey(struct sr_session *session) { #ifdef _WIN32 stdin_handle = GetStdHandle(STD_INPUT_HANDLE); @@ -68,9 +69,10 @@ void add_anykey(void) tcsetattr(STDIN_FILENO, TCSADRAIN, &term); #endif - sr_session_source_add(STDIN_FILENO, G_IO_IN, -1, received_anykey, NULL); + sr_session_source_add(session, STDIN_FILENO, G_IO_IN, -1, + received_anykey, session); - printf("Press any key to stop acquisition.\n"); + g_message("Press any key to stop acquisition."); } /* Restore stdin attributes. */