declare const GyroMsg_ck = "\npublic class GyroMsg {\n float gyroX;\n float gyroY;\n float gyroZ;\n\n function float getGyroX() {\n return gyroX;\n }\n\n function float getGyroY() {\n return gyroY;\n }\n\n function float getGyroZ() {\n return gyroZ;\n }\n\n function void _copy(GyroMsg localMsg) {\n localMsg.gyroX => gyroX;\n localMsg.gyroY => gyroY;\n localMsg.gyroZ => gyroZ;\n }\n}\n"; declare const Gyro_ck = "\nglobal Event _gyroReading;\nglobal int _gyroActive;\n\nglobal float _gyroX;\nglobal float _gyroY;\nglobal float _gyroZ;\n\npublic class Gyro extends Event {\n\n 0 => int isGyroOpen;\n 0 => int active;\n\n string deviceName; \n\n // GyroMsg Queue\n GyroMsg _gyroMsgQueue[0];\n\n function string name() {\n return deviceName;\n }\n\n function int openGyro(int num) {\n if (num < 0) {\n false => active;\n } else {\n \"js DeviceOrientationEvent\" => deviceName;\n true => active;\n }\n active => isGyroOpen => _gyroActive;\n spork ~ _gyroListener();\n return active;\n }\n\n\n // Pop the first GyroMsg from the queue\n // Write it to msg and return 1\n function int recv(GyroMsg msg) {\n // is empty\n if (_gyroMsgQueue.size() <= 0) {\n return 0;\n }\n\n // pop the first GyroMsg to msg, return true\n _gyroMsgQueue[0] @=> GyroMsg localMsg;\n msg._copy(localMsg); \n _gyroMsgQueue.popFront();\n return 1;\n }\n\n // Gyro Listener\n // Get variables from JS and write to the GyroMsg \n function void _gyroListener() {\n GyroMsg @ msg;\n while(true){\n new GyroMsg @=> msg;\n _gyroReading => now;\n\n _gyroX => msg.gyroX;\n _gyroY => msg.gyroY;\n _gyroZ => msg.gyroZ;\n\n _gyroMsgQueue << msg;\n this.broadcast();\n }\n }\n}\n"; export { GyroMsg_ck, Gyro_ck };