diff options
Diffstat (limited to 'ofAsterisk')
| -rwxr-xr-x | ofAsterisk/ofAsterisk.cbp | 63 | ||||
| -rwxr-xr-x | ofAsterisk/src/Asterisk.cpp | 42 |
2 files changed, 61 insertions, 44 deletions
diff --git a/ofAsterisk/ofAsterisk.cbp b/ofAsterisk/ofAsterisk.cbp index fe155a0..af6def7 100755 --- a/ofAsterisk/ofAsterisk.cbp +++ b/ofAsterisk/ofAsterisk.cbp @@ -1,4 +1,4 @@ -<?xml version="1.0"?> +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <CodeBlocks_project_file> <FileVersion major="1" minor="6" /> <Project> @@ -6,7 +6,7 @@ <Option makefile_is_custom="1" /> <Option pch_mode="2" /> <Option compiler="gcc" /> - <Option virtualFolders="addons/;src/;build config/;" /> + <Option virtualFolders="addons/;src/;build config/;addons/ofxNetwork/src/;" /> <Build> <Target title="Debug"> <Option output="bin/$(PROJECT_NAME)_debug" prefix_auto="1" extension_auto="1" /> @@ -27,52 +27,61 @@ <Option projectLinkerOptionsRelation="2" /> </Target> </Build> - <Unit filename="config.make"> - <Option virtualFolder="build config" /> - </Unit> - <Unit filename="src/main.cpp"> - <Option virtualFolder="src/" /> - </Unit> - <Unit filename="src/testApp.cpp"> - <Option virtualFolder="src/" /> - </Unit> - <Unit filename="src/testApp.h"> - <Option virtualFolder="src/" /> + <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxNetwork.h"> + <Option virtualFolder="addons/ofxNetwork/src" /> </Unit> - <Extensions> - <code_completion /> - <envvars /> - <debugger /> - </Extensions> <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxNetworkUtils.h"> <Option virtualFolder="addons/ofxNetwork/src" /> </Unit> - <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxTCPServer.cpp"> + <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxTCPClient.cpp"> <Option virtualFolder="addons/ofxNetwork/src" /> </Unit> - <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxUDPManager.cpp"> + <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxTCPClient.h"> <Option virtualFolder="addons/ofxNetwork/src" /> </Unit> - <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxTCPServer.h"> + <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxTCPManager.cpp"> <Option virtualFolder="addons/ofxNetwork/src" /> </Unit> <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxTCPManager.h"> <Option virtualFolder="addons/ofxNetwork/src" /> </Unit> - <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxNetwork.h"> - <Option virtualFolder="addons/ofxNetwork/src" /> - </Unit> - <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxTCPClient.cpp"> + <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxTCPServer.cpp"> <Option virtualFolder="addons/ofxNetwork/src" /> </Unit> - <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxTCPManager.cpp"> + <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxTCPServer.h"> <Option virtualFolder="addons/ofxNetwork/src" /> </Unit> - <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxTCPClient.h"> + <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxUDPManager.cpp"> <Option virtualFolder="addons/ofxNetwork/src" /> </Unit> <Unit filename="../../../openFrameworks/addons/ofxNetwork/src/ofxUDPManager.h"> <Option virtualFolder="addons/ofxNetwork/src" /> </Unit> + <Unit filename="addons.make"> + <Option virtualFolder="build config/" /> + </Unit> + <Unit filename="config.make"> + <Option virtualFolder="build config" /> + </Unit> + <Unit filename="src/Asterisk.cpp"> + <Option virtualFolder="src/" /> + </Unit> + <Unit filename="src/Asterisk.h"> + <Option virtualFolder="src/" /> + </Unit> + <Unit filename="src/main.cpp"> + <Option virtualFolder="src/" /> + </Unit> + <Unit filename="src/testApp.cpp"> + <Option virtualFolder="src/" /> + </Unit> + <Unit filename="src/testApp.h"> + <Option virtualFolder="src/" /> + </Unit> + <Extensions> + <code_completion /> + <envvars /> + <debugger /> + </Extensions> </Project> </CodeBlocks_project_file> diff --git a/ofAsterisk/src/Asterisk.cpp b/ofAsterisk/src/Asterisk.cpp index ae85269..46957cd 100755 --- a/ofAsterisk/src/Asterisk.cpp +++ b/ofAsterisk/src/Asterisk.cpp @@ -10,12 +10,12 @@ Asterisk::Asterisk() udpConnection.Bind(5000);
udpConnection.SetNonBlocking(true);
cmd("ssh 80.93.22.22 'sudo /usr/sbin/asterisk -rx \"database put GAME passcode 1234\"'");
- state=WAITING;
+ state=WAITING; //for acknowledge
printf("Asterisk: created socket and connected to server\n");
}
void Asterisk::startGame(){
- if (state!=PLAYING) {
+ if (state==IDLE) {
cmd("ssh 80.93.22.22 'sudo /usr/sbin/asterisk -rx \"devstate change Custom:GAME NOT_INUSE\"'");
printf("Asterisk: attempting to dequeue\n");
state=STARTING;
@@ -32,31 +32,39 @@ void Asterisk::endGame(string score){ }
}
void Asterisk::cmd(string s) {
- file = popen(s.c_str(), "r");
- int filenum=fileno(file);
- //fcntl(filenum, F_SETFL, O_NONBLOCK); //doesn't seem to work, still pauses
+ file = popen(s.c_str(), "re");
+ filenum=fileno(file);
+ fcntl(filenum, F_SETFL, O_NONBLOCK); //doesn't seem to work, still pauses
//pclose(file); //discard the pipe THIS IS BLOCKING
}
int Asterisk::update(){
- //how to capture stdin response from popen
- /*
+ //capture stdin response from popen
if (state==WAITING||state==STARTING) {
- char buf[100];
- ssize_t r = read(filenum, buf, 100);
+ char buf[1000];
+ ssize_t r = read(filenum, buf, 1000);
//if (r == -1 && errno == EAGAIN)
//no data yet
//else
- if (r > 0)
- //received data
- printf("%s\n",buf);
+ if (r > 0) {
pclose(file);
- state=IDLE;
- ///else
- //pipe closed
+ string msg=string(buf);
+ //received data is always a command ACKNOWLEDGEMENT
+ if (msg.compare("Changing GAME to NOT_INUSE")==0) {
+ printf("player dequeued\n");
+ state=PLAYING;
+ }
+ else if (msg.compare(0,5,"gameQ")==0) {
+ //queue status message
+ }
+ else {
+ printf("stdin says: %s\n",buf);
+ state=IDLE;
+ }
+ }
}
- */
- //check messages and pipes, returns new keypresses
+
+ //check udp messages, return new keypresses
char udpMessage[10000];
udpConnection.Receive(udpMessage,10000);
string msg=udpMessage;
|
