UNPKG

theta-ble-client-react-native

Version:

This library provides a way to control RICOH THETA using

300 lines (237 loc) 10.9 kB
import { EmitterSubscription, NativeEventEmitter, NativeModules, } from 'react-native'; import type { BaseNotify } from '../theta-device/notify'; import type { Timeout, } from '../values'; import type { ConnectedWifiInfo, PeripheralDevice, Proxy, ThetaInfo, ThetaOptions, ThetaState, ThetaState2, } from '../service/data'; import type { CameraPowerEnum, CaptureModeEnum, ChargingStateEnum, FileFormatEnum, MaxRecordableTimeEnum, NetworkTypeEnum, OptionName, PluginControl, PluginList, PluginOrders, ThetaModel, WifiSecurityModeEnum, WlanPasswordStateEnum, } from '../service'; const ThetaBleClientReactNative = NativeModules.ThetaBleClientReactNative; export function addNotifyListener(callback: (event: BaseNotify) => void): EmitterSubscription { const eventEmitter = new NativeEventEmitter(NativeModules.ThetaBleClientReactNative); return eventEmitter.addListener('ThetaBleNotify', callback); } interface DeviceListItem { deviceId: number; name: string; } interface ScanParams { name?: string; timeout?: Timeout; } export async function nativeScan(params: ScanParams): Promise<DeviceListItem[]> { return ThetaBleClientReactNative.nativeScan(params); } export async function nativeScanThetaSsid(params: ScanSsidParams): Promise<SsidListItem[]> { return ThetaBleClientReactNative.nativeScanThetaSsid(params); } export async function nativeConnect(id: number, uuid?: string) { return ThetaBleClientReactNative.nativeConnect(id, uuid); } interface ScanSsidParams { model?: ThetaModel; timeout?: number; } interface SsidListItem { ssid: string; password: string; } export async function nativeIsConnected(id: number): Promise<boolean> { return ThetaBleClientReactNative.nativeIsConnected(id); } export async function nativeDisconnect(id: number) { return ThetaBleClientReactNative.nativeDisconnect(id); } export async function nativeContainService(id: number, service: string): Promise<boolean> { return ThetaBleClientReactNative.nativeContainService(id, service); } export async function nativeGetFirmwareRevision(id: number): Promise<string> { return ThetaBleClientReactNative.nativeGetFirmwareRevision(id); } export async function nativeGetManufacturerName(id: number): Promise<string> { return ThetaBleClientReactNative.nativeGetManufacturerName(id); } export async function nativeGetModelNumber(id: number): Promise<string> { return ThetaBleClientReactNative.nativeGetModelNumber(id); } export async function nativeGetSerialNumber(id: number): Promise<string> { return ThetaBleClientReactNative.nativeGetSerialNumber(id); } export async function nativeGetWlanMacAddress(id: number): Promise<string> { return ThetaBleClientReactNative.nativeGetWlanMacAddress(id); } export async function nativeGetBluetoothMacAddress(id: number): Promise<string> { return ThetaBleClientReactNative.nativeGetBluetoothMacAddress(id); } export async function nativeGetBatteryLevel(id: number): Promise<number> { return ThetaBleClientReactNative.nativeGetBatteryLevel(id); } export async function nativeSetBatteryLevelNotify(id: number, enable: boolean) { return ThetaBleClientReactNative.nativeSetBatteryLevelNotify(id, enable); } export async function nativeGetBatteryStatus(id: number): Promise<ChargingStateEnum> { return ThetaBleClientReactNative.nativeGetBatteryStatus(id); } export async function nativeSetBatteryStatusNotify(id: number, enable: boolean) { return ThetaBleClientReactNative.nativeSetBatteryStatusNotify(id, enable); } export async function nativeGetCameraPower(id: number): Promise<CameraPowerEnum> { return ThetaBleClientReactNative.nativeGetCameraPower(id); } export async function nativeSetCameraPower(id: number, value: CameraPowerEnum) { return ThetaBleClientReactNative.nativeSetCameraPower(id, value); } export async function nativeSetCameraPowerNotify(id: number, enable: boolean) { return ThetaBleClientReactNative.nativeSetCameraPowerNotify(id, enable); } export async function nativeSetCommandErrorDescriptionNotify(id: number, enable: boolean) { return ThetaBleClientReactNative.nativeSetCommandErrorDescriptionNotify(id, enable); } export async function nativeGetPluginControl(id: number): Promise<PluginControl> { return ThetaBleClientReactNative.nativeGetPluginControl(id); } export async function nativeSetPluginControl(id: number, value: PluginControl) { return ThetaBleClientReactNative.nativeSetPluginControl(id, value); } export async function nativeSetPluginControlNotify(id: number, enable: boolean) { return ThetaBleClientReactNative.nativeSetPluginControlNotify(id, enable); } export async function nativeGetPluginList(id: number): Promise<PluginList> { return ThetaBleClientReactNative.nativeGetPluginList(id); } export async function nativeGetPluginOrders(id: number): Promise<PluginOrders> { return ThetaBleClientReactNative.nativeGetPluginOrders(id); } export async function nativeSetPluginOrders(id: number, value: PluginOrders) { return ThetaBleClientReactNative.nativeSetPluginOrders(id, value); } export async function nativeGetCaptureMode(id: number): Promise<CaptureModeEnum> { return ThetaBleClientReactNative.nativeGetCaptureMode(id); } export async function nativeSetCaptureMode(id: number, value: CaptureModeEnum) { return ThetaBleClientReactNative.nativeSetCaptureMode(id, value); } export async function nativeGetFileFormat(id: number): Promise<FileFormatEnum> { return ThetaBleClientReactNative.nativeGetFileFormat(id); } export async function nativeSetFileFormat(id: number, value: FileFormatEnum) { return ThetaBleClientReactNative.nativeSetFileFormat(id, value); } export async function nativeGetMaxRecordableTime(id: number): Promise<MaxRecordableTimeEnum> { return ThetaBleClientReactNative.nativeGetMaxRecordableTime(id); } export async function nativeSetMaxRecordableTime(id: number, value: MaxRecordableTimeEnum) { return ThetaBleClientReactNative.nativeSetMaxRecordableTime(id, value); } export async function nativeTakePicture(id: number) { return ThetaBleClientReactNative.nativeTakePicture(id); } export async function nativeCameraControlCommandV2GetInfo(id: number): Promise<ThetaInfo> { return ThetaBleClientReactNative.nativeCameraControlCommandV2GetInfo(id); } export async function nativeCameraControlCommandV2GetState(id: number): Promise<ThetaState> { return ThetaBleClientReactNative.nativeCameraControlCommandV2GetState(id); } export async function nativeCameraControlCommandV2SetStateNotify(id: number, enable: boolean) { return ThetaBleClientReactNative.nativeCameraControlCommandV2SetStateNotify(id, enable); } export async function nativeCameraControlCommandV2GetState2(id: number): Promise<ThetaState2> { return ThetaBleClientReactNative.nativeCameraControlCommandV2GetState2(id); } export async function nativeCameraControlCommandV2GetOptions(id: number, optionNames: OptionName[]): Promise<ThetaOptions> { return ThetaBleClientReactNative.nativeCameraControlCommandV2GetOptions(id, optionNames); } export async function nativeCameraControlCommandV2GetOptionsByString(id: number, optionNames: string[]): Promise<Record<string, unknown>> { return ThetaBleClientReactNative.nativeCameraControlCommandV2GetOptionsByString(id, optionNames); } export async function nativeCameraControlCommandV2SetOptions(id: number, options: ThetaOptions) { return ThetaBleClientReactNative.nativeCameraControlCommandV2SetOptions(id, options); } export async function nativeCameraControlCommandV2ReleaseShutter(id: number) { return ThetaBleClientReactNative.nativeCameraControlCommandV2ReleaseShutter(id); } export async function nativeBluetoothControlCommandScanPeripheralDevice(id: number, timeout: number): Promise<PeripheralDevice[]> { return ThetaBleClientReactNative.nativeBluetoothControlCommandScanPeripheralDevice(id, timeout); } export async function nativeBluetoothControlCommandScanPeripheralDeviceStart(id: number, timeout: number) { return ThetaBleClientReactNative.nativeBluetoothControlCommandScanPeripheralDeviceStart(id, timeout); } export async function nativeBluetoothControlCommandScanPeripheralDeviceStop(id: number) { return ThetaBleClientReactNative.nativeBluetoothControlCommandScanPeripheralDeviceStop(id); } export async function nativeBluetoothControlCommandConnectPeripheralDevice(id: number, macAddress: string) { return ThetaBleClientReactNative.nativeBluetoothControlCommandConnectPeripheralDevice(id, macAddress); } export async function nativeBluetoothControlCommandDeletePeripheralDevice(id: number, macAddress: string) { return ThetaBleClientReactNative.nativeBluetoothControlCommandDeletePeripheralDevice(id, macAddress); } export async function nativeWlanControlCommandV2SetNetworkType(id: number, networkType: NetworkTypeEnum) { return ThetaBleClientReactNative.nativeWlanControlCommandV2SetNetworkType(id, networkType); } export async function nativeWlanControlCommandV2SetNetworkTypeNotify(id: number, enable: boolean) { return ThetaBleClientReactNative.nativeWlanControlCommandV2SetNetworkTypeNotify(id, enable); } export async function nativeWlanControlCommandV2GetConnectedWifiInfo(id: number): Promise<ConnectedWifiInfo> { return ThetaBleClientReactNative.nativeWlanControlCommandV2GetConnectedWifiInfo(id); } export async function nativeWlanControlCommandV2SetConnectedWifiInfoNotify(id: number, enable: boolean) { return ThetaBleClientReactNative.nativeWlanControlCommandV2SetConnectedWifiInfoNotify(id, enable); } export async function nativeWlanControlCommandV2ScanSsidStart(id: number, timeout: number) { return ThetaBleClientReactNative.nativeWlanControlCommandV2ScanSsidStart(id, timeout); } export async function nativeWlanControlCommandV2ScanSsidStop(id: number) { return ThetaBleClientReactNative.nativeWlanControlCommandV2ScanSsidStop(id); } export interface SetAccessPointParams { ssid: string, ssidStealth?: boolean, security?: WifiSecurityModeEnum, password?: string, connectionPriority?: number, ipAddress?: string, subnetMask?: string, defaultGateway?: string, proxy?: Proxy, } export async function nativeWlanControlCommandV2SetAccessPointDynamically( id: number, params: SetAccessPointParams, ) { return ThetaBleClientReactNative.nativeWlanControlCommandV2SetAccessPointDynamically(id, params); } export async function nativeWlanControlCommandV2SetAccessPointStatically( id: number, params: SetAccessPointParams, ) { return ThetaBleClientReactNative.nativeWlanControlCommandV2SetAccessPointStatically(id, params); } export async function nativeWlanControlCommandV2GetWlanPasswordState(id: number): Promise<WlanPasswordStateEnum> { return ThetaBleClientReactNative.nativeWlanControlCommandV2GetWlanPasswordState(id); } export async function nativeReleaseDevice(id: number) { return ThetaBleClientReactNative.nativeReleaseDevice(id); }