mcopy/processing/mcopy_capture_server/mcopy_capture_server.pde

67 lines
1.4 KiB
Plaintext

import processing.net.*;
import codeanticode.syphon.*;
Server server;
PImage img;
SyphonClient syphon;
int frameCounter = 0;
int port = 5204;
void setup() {
size(1920, 1080, P3D);
syphon = new SyphonClient(this);
server = new Server(this, port);
println("Server listening on port " + port);
}
void draw() {
Client client = server.available();
JSONObject json;
String req;
String res;
String frameNumber;
background(0);
if (syphon.newFrame()) {
img = syphon.getImage(img);
}
if (img != null) {
image(img, 0, 0, width, height);
}
if (client != null) {
req = client.readString();
if (req != null) {
json = new JSONObject();
json.setInt("frame", frameCounter);
//format number to 000001 for filesystem sorting
frameNumber = nf(frameCounter, 6);
//debug request
//println(client.ip() + "\t" + req);
println("Capturing frame " + frameNumber + "...");
/////////
// Place single frame capture code here
/////////
delay(100);
save("frame_" + frameNumber + ".tif");
delay(100);
println("Captured frame " + frameNumber);
json.setBoolean("success", true);
res = json.toString();
//debug response
//println("res " + res);
client.write(res + "\n");
server.disconnect(client);
frameCounter++;
}
}
}