summaryrefslogtreecommitdiff
path: root/ofAsterisk
diff options
context:
space:
mode:
Diffstat (limited to 'ofAsterisk')
-rwxr-xr-xofAsterisk/ofAsterisk.cbp63
-rwxr-xr-xofAsterisk/src/Asterisk.cpp42
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;