Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C++ (http://www.velocityreviews.com/forums/f39-c.html)
-   -   Hooking up a GUI to a console application (http://www.velocityreviews.com/forums/t459871-hooking-up-a-gui-to-a-console-application.html)

Bobrick 01-17-2007 12:15 PM

Hooking up a GUI to a console application
 
Hi.

I'm trying to create a GUI for a console application I have (written by
someone else, but with permission to use it). The console application
gathers MIDI data from a port, and returns the data in the form of an
std::vector<unsigned char>.

What I need to do is get this console application to trigger different
buttons to light up on a GUI depending on the contents of the
std::vector<unsigned char> (which is called "message"), but the console
application depends on being called forever, or until the user hits a
key to cancel.

My problem is, I'm not sure how to have the function loop forever
without crashing the application, or alternatively I need to know how I
can have a key press stop the function doing what its doing and go back
to being idle.

Can anyone point me in the right direction?


John Carson 01-17-2007 12:51 PM

Re: Hooking up a GUI to a console application
 
"Bobrick" <pukill57@gmail.com> wrote in message
news:1169036159.650982.45200@m58g2000cwm.googlegro ups.com
> Hi.
>
> I'm trying to create a GUI for a console application I have (written
> by someone else, but with permission to use it). The console
> application gathers MIDI data from a port, and returns the data in
> the form of an std::vector<unsigned char>.
>
> What I need to do is get this console application to trigger different
> buttons to light up on a GUI depending on the contents of the
> std::vector<unsigned char> (which is called "message"), but the
> console application depends on being called forever, or until the
> user hits a key to cancel.
>
> My problem is, I'm not sure how to have the function loop forever
> without crashing the application, or alternatively I need to know how
> I can have a key press stop the function doing what its doing and go
> back to being idle.
>
> Can anyone point me in the right direction?



This is not covered by standard C++ and you should ask in a newsgroup
concerned with the platform you are targeting.

The simplest approach is probably to create two threads; one would run the
console code largely unchanged and the other would run the GUI. Then you
just have to choose one of several approaches for communicating between the
two threads.

--
John Carson



Michael DOUBEZ 01-17-2007 01:12 PM

Re: Hooking up a GUI to a console application
 
Bobrick a écrit :
> Hi.
>
> I'm trying to create a GUI for a console application I have (written by
> someone else, but with permission to use it). The console application
> gathers MIDI data from a port, and returns the data in the form of an
> std::vector<unsigned char>.
>
> What I need to do is get this console application to trigger different
> buttons to light up on a GUI depending on the contents of the
> std::vector<unsigned char> (which is called "message"), but the console
> application depends on being called forever, or until the user hits a
> key to cancel.
>
> My problem is, I'm not sure how to have the function loop forever
> without crashing the application, or alternatively I need to know how I
> can have a key press stop the function doing what its doing and go back
> to being idle.
>
> Can anyone point me in the right direction?


Sure, the door is just here:
http://www.parashift.com/c++-faq-lit...t.html#faq-5.9

Now concerning your problem that depends on the design of the program,
on which OS it runs and how should the final product be working.

The usual solution when using such an external program is to start it in
a thread and parsing I/O for command if needed. If you have POSIX
implmentation of popen, the pstream library is a good stating point.
http://pstreams.sourceforge.net/


Michael


All times are GMT. The time now is 09:14 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.