public byte[] GetScreenshotAndWait() { byte[] output_buffer = null; GetScreenshot((byte[] end_data) => { //Reset the active image and return the output buffer. active_receive_img = null; output_buffer = end_data; }); //Wait while (output_buffer == null) { ; } //Return now. return(output_buffer); }
public void GetScreenshot(OnImageDone callback) { //Screenshots are sent in chunks. The first chunk has a header of 12 bytes. SendEndpointMsg(PebbleEndpointType.SCREENSHOT, new byte[] { 0x00 }, (PebbleProtocolMessage msg) => { //Use the object instead. Create one if it doesn't exist. if (active_receive_img == null) { active_receive_img = new PebbleChunkedScreenshot((byte[] data) => { //Clear active screenshot and then call callback. active_receive_img = null; callback(data); }); } return(active_receive_img.OnGotData(msg)); }); }