ofxPiMapper fixed for C++17 & oF 12.0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

109 lines
2.1 KiB

#include "ofApp.h"
void ofApp::setup(){
ofBackground(0);
isMapperSetup = false;
// Set IP address of your RasPi in data/config.json
ofxJSONElement json;
json.open("config.json");
TCPClient::instance()->setup(json["ip"].asString(), json["port"].asInt());
}
void ofApp::update(){
TCPClient::instance()->update();
if(isMapperSetup){
mapper.update();
}
}
void ofApp::draw(){
TCPClient::instance()->draw();
if(isMapperSetup){
mapper.draw();
}
}
// This is where we get configuration from the server part of this.
void ofApp::gotMessage(ofMessage m){
ofxJSONElement json;
bool ok = json.parse(m.message);
if(ok){
if(json["event"] == "received"){
std::string buffer = json["data"].asString();
ofxXmlSettings xml;
xml.loadFromBuffer(buffer);
xml.save("ofxpimapper.xml");
mapper.setup();
isMapperSetup = true;
}
}
}
void ofApp::keyPressed(int key){
if(isMapperSetup){
mapper.keyPressed(key);
ofxJSONElement json;
json["event"] = "keyPressed";
json["key"] = key;
TCPClient::instance()->send(json.getRawString());
}
}
void ofApp::keyReleased(int key){
if(isMapperSetup){
mapper.keyReleased(key);
ofxJSONElement json;
json["event"] = "keyReleased";
json["key"] = key;
TCPClient::instance()->send(json.getRawString());
}
}
void ofApp::mousePressed(int x, int y, int button){
if(isMapperSetup){
mapper.mousePressed(x, y, button);
ofxJSONElement json;
json["event"] = "mousePressed";
json["x"] = x;
json["y"] = y;
json["button"] = button;
TCPClient::instance()->send(json.getRawString());
}
}
void ofApp::mouseReleased(int x, int y, int button){
if(isMapperSetup){
mapper.mouseReleased(x, y, button);
ofxJSONElement json;
json["event"] = "mouseReleased";
json["x"] = x;
json["y"] = y;
json["button"] = button;
TCPClient::instance()->send(json.getRawString());
}
}
void ofApp::mouseDragged(int x, int y, int button){
if(isMapperSetup){
mapper.mouseDragged(x, y, button);
ofxJSONElement json;
json["event"] = "mouseDragged";
json["x"] = x;
json["y"] = y;
json["button"] = button;
TCPClient::instance()->send(json.getRawString());
}
}