static bool rcdeviceIsCameraControlEnabled(void) { bool isPowerSimulationSupported = isFeatureSupported(RCDEVICE_PROTOCOL_FEATURE_SIMULATE_POWER_BUTTON); bool isWiFiSimulationSupported = isFeatureSupported(RCDEVICE_PROTOCOL_FEATURE_SIMULATE_WIFI_BUTTON); bool isChangeModeSupported = isFeatureSupported(RCDEVICE_PROTOCOL_FEATURE_CHANGE_MODE); bool isStartRecordingSupported = isFeatureSupported(RCDEVICE_PROTOCOL_FEATURE_START_RECORDING); bool isStopRecordingSupported = isFeatureSupported(RCDEVICE_PROTOCOL_FEATURE_STOP_RECORDING); if (camDevice->serialPort != NULL && (isPowerSimulationSupported || isWiFiSimulationSupported || isChangeModeSupported || isStartRecordingSupported || isStopRecordingSupported)) { return true; } return false; }
bool LV2World::isPluginSupported (const LilvPlugin* plugin) { // Required features support LilvNodes* nodes = lilv_plugin_get_required_features (plugin); LILV_FOREACH (nodes, iter, nodes) { const LilvNode* node (lilv_nodes_get (nodes, iter)); if (! isFeatureSupported (CharPointer_UTF8 (lilv_node_as_uri (node)))) { return false; // Feature not supported } } lilv_nodes_free (nodes); nodes = nullptr; // Check this plugin's port types are supported const uint32 numPorts = lilv_plugin_get_num_ports (plugin); for (uint32 i = 0; i < numPorts; ++i) { // const LilvPort* port (lilv_plugin_get_port_by_index (plugin, i)); // nothing here yet (or ever) } return true; }
static bool rcdeviceIs5KeyEnabled(void) { if (camDevice->serialPort != NULL && isFeatureSupported(RCDEVICE_PROTOCOL_FEATURE_SIMULATE_5_KEY_OSD_CABLE)) { return true; } return false; }
static void rcdeviceCameraControlProcess(void) { for (boxId_e i = BOXCAMERA1; i <= BOXCAMERA3; i++) { uint8_t switchIndex = i - BOXCAMERA1; if (IS_RC_MODE_ACTIVE(i)) { if (!rcdeviceIsCameraControlEnabled()) { reInitializeDevice(); } // check last state of this mode, if it's true, then ignore it. // Here is a logic to make a toggle control for this mode if (switchStates[switchIndex].isActivated) { continue; } uint8_t behavior = RCDEVICE_PROTOCOL_CAM_CTRL_UNKNOWN_CAMERA_OPERATION; switch (i) { case BOXCAMERA1: if (isFeatureSupported(RCDEVICE_PROTOCOL_FEATURE_SIMULATE_WIFI_BUTTON)) { behavior = RCDEVICE_PROTOCOL_CAM_CTRL_SIMULATE_WIFI_BTN; } break; case BOXCAMERA2: if (isFeatureSupported(RCDEVICE_PROTOCOL_FEATURE_SIMULATE_POWER_BUTTON)) { behavior = RCDEVICE_PROTOCOL_CAM_CTRL_SIMULATE_POWER_BTN; } break; case BOXCAMERA3: if (isFeatureSupported(RCDEVICE_PROTOCOL_FEATURE_CHANGE_MODE)) { behavior = RCDEVICE_PROTOCOL_CAM_CTRL_CHANGE_MODE; } break; default: break; } if (behavior != RCDEVICE_PROTOCOL_CAM_CTRL_UNKNOWN_CAMERA_OPERATION) { runcamDeviceSimulateCameraButton(camDevice, behavior); switchStates[switchIndex].isActivated = true; } } else { switchStates[switchIndex].isActivated = false; } } }