Csound Csound-dev Csound-tekno Search About

[Cs-dev] OT a bit, non-blocking keyboard input

Date2006-04-11 11:59
FromIain Duncan
Subject[Cs-dev] OT a bit, non-blocking keyboard input
For my API project, I am currently doing a console input module, and
want to have non-blocking keyboard input in a thread, and preferably be
able to grab character either before or after the enter key. I got it to
work with the below but still have to hit enter. Can anyone tell me how
to alter that so that the key gets used right away? Also, is there a
better way of doing it if I would like the code to be portable to
non-unix systems? ( I tried using select as well, but couldn't get that
working without an enter key either. )

Thanks
Iain

// the below is working and not blocking,
// but still requires hitting enter
char key;
int byte_read;
fcntl( 0, F_SETFL, O_NONBLOCK );
fcntl( 0, F_SETFL, O_NDELAY );

while( !exit_now ){
  // put in a delay sleep to share with other threads
  usleep( 1000 );
  byte_read = read( 0, &key, 1 );
  if ( byte_read != -1 ){

    if( key == 'x' ){
      cout << "CONSOLE: issuing request shutdown message.\n";
      server->push_msg( exit_msg );
    }
  }
}


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2006-04-11 19:18
FromAnthony Kozar
SubjectRe: [Cs-dev] OT a bit, non-blocking keyboard input
I think the best ways of doing this are going to be platform dependent.  Do
not use the C or C++ standard libraries.  Use instead whatever native API is
available for grabbing keyboard input on the OS you are using.

For instance, on MacOS I would probably use the InputSprocket library which
is good for grabbing arbitrary combinations of key-downs (including more
than one at a time) and was designed for game developers.

Just my $0.02.

Anthony

Iain Duncan wrote on 4/11/06 6:59 AM:

> Can anyone tell me how
> to alter that so that the key gets used right away? Also, is there a
> better way of doing it if I would like the code to be portable to
> non-unix systems? ( I tried using select as well, but couldn't get that
> working without an enter key either. )



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net