UNPKG

theta-ble-client-react-native

Version:

This library provides a way to control RICOH THETA using

131 lines (122 loc) 3.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ThetaDevice = void 0; var ThetaBleClient = _interopRequireWildcard(require("../native")); var _service = require("../service"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /* eslint no-useless-catch: 0 */ /** * THETA camera device * * Call ThetaBle.scan() to obtain. */ class ThetaDevice { /** * ID of THETA * * Granted by {@link theta-ble.scan} */ /** * Name of THETA. */ /** * UUID registered with THETA. */ get uuid() { return this._uuid; } notifyList = new Map(); /** * Use in {@link theta-ble.scan} * * @param id ID obtained from scan * @param name THETA name */ constructor(id, name) { this.id = id; this.name = name; this.eventListener = ThetaBleClient.addNotifyListener(notify => { if (notify.deviceId === this.id) { var _this$notifyList$get; (_this$notifyList$get = this.notifyList.get(notify.characteristic)) === null || _this$notifyList$get === void 0 || _this$notifyList$get(notify); } }); } /** * Connect to THETA. */ async connect(uuid) { try { await ThetaBleClient.nativeConnect(this.id, uuid); if (uuid) { this._uuid = uuid; } } catch (error) { throw error; } } /** * Whether connected to THETA. * * @return Whether connected or not. */ async isConnected() { return await ThetaBleClient.nativeIsConnected(this.id); } /** * Disconnect from THETA. */ async disconnect() { try { await ThetaBleClient.nativeDisconnect(this.id); } catch (error) { throw error; } } async getService(service) { try { if (!(await ThetaBleClient.nativeContainService(this.id, service))) { return; } return this.newThetaService(service); } catch (error) { throw error; } } newThetaService(service) { switch (service) { case _service.BleServiceEnum.CAMERA_CONTROL_COMMANDS: return new _service.CameraControlCommands(this); case _service.BleServiceEnum.CAMERA_CONTROL_COMMAND_V2: return new _service.CameraControlCommandV2(this); case _service.BleServiceEnum.CAMERA_INFORMATION: return new _service.CameraInformation(this); case _service.BleServiceEnum.CAMERA_STATUS_COMMAND: return new _service.CameraStatusCommand(this); case _service.BleServiceEnum.SHOOTING_CONTROL_COMMAND: return new _service.ShootingControlCommand(this); case _service.BleServiceEnum.BLUETOOTH_CONTROL_COMMAND: return new _service.BluetoothControlCommand(this); case _service.BleServiceEnum.WLAN_CONTROL_COMMAND: return new _service.WlanControlCommand(this); case _service.BleServiceEnum.WLAN_CONTROL_COMMAND_V2: return new _service.WlanControlCommandV2(this); default: break; } return; } /** * Clean up resources. * * Call when you are done using it. */ release() { this.eventListener.remove(); ThetaBleClient.nativeReleaseDevice(this.id).then().catch(); } } exports.ThetaDevice = ThetaDevice; //# sourceMappingURL=theta-device.js.map