void ApiV1::parseShortcutCommand(QString cmd) { QString value = getCommandValue(cmd); if (value == "desktop") { readableCommand = "Show desktop"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_SHOW_DESKTOP); #endif } else if (value == "close") { readableCommand = "Close"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_CLOSE); #endif } else if (value == "copy") { readableCommand = "Copy"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_COPY); #endif } else if (value == "paste") { readableCommand = "Paste"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_PASTE); #endif } else if (value == "selectall") { readableCommand = "Select all"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_SELECT_ALL); #endif } else if (value == "undo") { readableCommand = "Undo"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_UNDO); #endif } else if (value == "standby") { readableCommand = "Standby"; #ifdef Q_OS_MAC KeyboardMac::Instance()->standby(); #endif } else if (value == "shutdown") { readableCommand = "Shutdown"; #ifdef Q_OS_MAC KeyboardMac::Instance()->shutdown(); #endif } }
void ApiV1::parseSlideshowCommand(QString cmd) { QString value = getCommandValue(cmd); if (value == "pause") { readableCommand = "Pause slideshow"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(kVK_ANSI_B); #endif } else if (value == "next") { readableCommand = "Next slide"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_RIGHT)); #endif } else if (value == "prev") { readableCommand = "Previous slide"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_LEFT)); #endif } }
void handleIfndef(char* ptr, const char* end, std::string* commandValue, const vx::sorted_vector<vx::StringID, s32> &localDefines, const vx::sorted_vector<vx::StringID, s32> &globalDefines) { auto valueEnd = getCommandValue(end + 1, commandValue); auto sid = vx::make_sid(commandValue->c_str()); bool found = hasDefine(sid, localDefines, globalDefines); if (found) { auto endifEnd = getElseOrEndif(valueEnd); auto endifEndOther = getElseOrEndif(endifEnd + 1); if (endifEnd != endifEndOther) { auto sizeToElse = endifEnd - ptr; memset(ptr, ' ', sizeToElse); auto endifStart = endifEndOther; while (true) { if (endifStart[0] == '#') break; --endifStart; } endifEnd = endifStart; } auto size = endifEndOther - endifEnd; auto offset = endifEnd - ptr; memset(ptr + offset, ' ', size); } }
//====================================================================================== String VirtuinoEthernet_WebServer::checkNetworkCommand(String command){ String returnedString=""; int pos=command.lastIndexOf(COMMAND_END_CHAR); if (pos>5){ // check the size of command String command1= command.substring(0,pos+1); // clear the command if (DEBUG) Serial.println("\r\nCommand = "+ command1); //------------------ get command password String commandPassword=""; int k=command1.indexOf(COMMAND_START_CHAR); if (k>0) commandPassword = command1.substring(0,k); if (DEBUG) Serial.println("\r\nCommand password:"+commandPassword ); if ((password.length()==0) || (commandPassword.equals(password))) { // check if password correct while (command1.indexOf(COMMAND_START_CHAR)>=0){ int cStart=command1.indexOf(COMMAND_START_CHAR); int cEnd=command1.indexOf(COMMAND_END_CHAR); if (cEnd-cStart>5){ String oneCommand = command1.substring(cStart+1,cEnd); // get one command char commandType = getCommandType(oneCommand); if (commandType!='E') { int pin= getCommandPin(oneCommand); if (pin!=-1){ boolean returnInfo=false; float value=0; if (oneCommand.charAt(4)=='?') returnInfo=true; else value = getCommandValue(oneCommand); String commandResponce=executeReceivedCommand(commandType,pin , value,returnInfo); returnedString += commandResponce; } else returnedString +=getErrorCommand(ERROR_PIN); // response error pin number !E00=1$ } else returnedString +=getErrorCommand(ERROR_TYPE); // response error type !E00=3$ } else{ returnedString +=getErrorCommand(ERROR_SIZE); // response error size of command !E00=4$ } command1=command1.substring(cEnd+1); } // while } else returnedString=getErrorCommand(ERROR_PASSWORD); // the password is not correct } else returnedString=getErrorCommand(ERROR_SIZE); // the size of command is not correct return returnedString; }
void ApiV1::parseMediaCommand(QString cmd) { QString value = getCommandValue(cmd); if (value == "play") { readableCommand = "Play"; Media::Instance()->playMedia(); } else if (value == "stop") { readableCommand = "Stop"; Media::Instance()->stopMedia(); } else if (value == "next") { readableCommand = "Next"; Media::Instance()->nextMedia(); } else if (value == "prev") { readableCommand = "Previous"; Media::Instance()->previousMedia(); } else if (value == "volup") { readableCommand = "Volume up"; Media::Instance()->volumeUp(); } else if (value == "voldown") { readableCommand = "Volume down"; Media::Instance()->volumeDown(); } else if (value == "mute") { readableCommand = "Mute"; Media::Instance()->volumeMute(); } else if (value == "launch") { readableCommand = "Launch player"; Media::Instance()->launchPlayer(); } }
void ApiV1::parseCommand(Command &command) { QString cmd = command.dataAsString(); QString value = getCommandValue(cmd); App *app = Server::Instance()->getApp(command.source); readableCommand = "Unknown"; if (cmd.contains(cmd_keyboard_string)) { parseKeyboardCommand(cmd); //Logger::Instance()->add("Keyboard: " + readableCommand); } else if (cmd.contains(cmd_media_string)) { parseMediaCommand(cmd); //Logger::Instance()->add("Media: " + readableCommand); } else if (cmd.contains(cmd_slideshow_string)) { parseSlideshowCommand(cmd); //Logger::Instance()->add("Slideshow: " + readableCommand); } else if (cmd.contains(cmd_scroll_string)) { parseScrollCommand(cmd); //Logger::Instance()->add("Scroll: " + readableCommand); } else if (cmd.contains(cmd_shortcut_string)) { parseShortcutCommand(cmd); //Logger::Instance()->add("Shortcut: " + readableCommand); } else if (cmd.contains(cmd_process_string)) { Server::Instance()->startProcess(value); //Logger::Instance()->add("Process: " + value); } else if (cmd.contains(cmd_google_string)) { QDesktopServices::openUrl("http://google.com/search?q=" + value); //Logger::Instance()->add("Google: " + value); } else if (cmd.contains(cmd_broadcast_string)) { command.source = value; app = Server::Instance()->getApp(value); app->onBroadCast(command); } else if (cmd.contains(cmd_connect)) { app->deviceName = value; //Logger::Instance()->add("Device name set to " + value); app->onConnect(); } else if (cmd.contains(cmd_disconnect)) { app = Server::Instance()->getApp(value); app->onDisconnect(); } else if (cmd.contains(cmd_info_device_name)) { app->deviceName = value; //Logger::Instance()->add("Device name set to " + value); } else if (cmd.contains(cmd_info_device_osversion)) { app->osVersion = value; //Logger::Instance()->add("Device OS version set to " + value); } else if (cmd.contains(cmd_info_app_name)) { app->appName = value; //Logger::Instance()->add("App name set to " + value); } else if (cmd.contains(cmd_info_app_version) || cmd.contains(cmd_version)) { app->appVersion = value; //Logger::Instance()->add("App version set to " + value); } else { //Logger::Instance()->add("Unknown ApiV1: " + cmd); } }
void ApiV1::parseScrollCommand(QString cmd) { QString value = getCommandValue(cmd); if (value == "zoomin") { readableCommand = "Zoom in"; MouseMac::Instance()->zoom(1,1); } else if (value == "zoomout") { readableCommand = "Zoom out"; MouseMac::Instance()->zoom(-1,1); } else if (value == "back") { readableCommand = "Back"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_BROWSER_BACK); #endif } else if (value == "forward") { readableCommand = "Forward"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_BROWSER_FORWARD); #endif } else if (value == "pageup") { readableCommand = "Page up"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_PAGE_UP)); #endif } else if (value == "pagedown") { readableCommand = "Page down"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_PAGE_DOWN)); #endif } else if (value == "cancel") { readableCommand = "Cancel"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_CANCEL); #endif } else if (value == "refresh") { readableCommand = "Refresh"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_REFRESH); #endif } else if (value == "fullexit") { readableCommand = "Exit fullscreen"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_FULLSCREEN); #endif } else if (value == "fullscreen") { readableCommand = "Fullscreen"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendShortcut(KeyboardMac::KEYCODE_FULLSCREEN); #endif } }
void ApiV1::parseKeyboardCommand(QString cmd) { if (cmd.contains("<") && cmd.contains(">")) { if (cmd.contains("<Enter>")) { readableCommand = "Enter"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_ENTER)); #endif return; } else if (cmd.contains("<Back>")) { readableCommand = "Back"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_BACK)); #endif return; } else if (cmd.contains("<tab>")) { readableCommand = "Tab"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_TAB)); #endif return; } else if (cmd.contains("<caps>")) { readableCommand = "Capslock"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_CAPS_LOCK)); #endif return; } else if (cmd.contains("<ctrl>")) { readableCommand = "Control"; if (cmd.contains("down")) { #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyDown(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_CONTROL)); #endif } else { #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyUp(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_CONTROL)); #endif } return; } else if (cmd.contains("<alt>")) { readableCommand = "Alt"; if (cmd.contains("down")) { #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyDown(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_ALT)); #endif } else { #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyUp(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_ALT)); #endif } return; } else if (cmd.contains("<shift>")) { readableCommand = "Shift"; if (cmd.contains("down")) { #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyDown(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_SHIFT)); #endif } else { #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyUp(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_SHIFT)); #endif } return; } else if (cmd.contains("<del>")) { readableCommand = "Delete"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_DEL)); #endif return; } else if (cmd.contains("<win>")) { readableCommand = "Windows"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_WINDOWS)); #endif return; } else if (cmd.contains("<esc>")) { readableCommand = "Escape"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_ESCAPE)); #endif return; } else if (cmd.contains("<end>")) { readableCommand = "End"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_MOVE_END)); #endif return; } else if (cmd.contains("<ins>")) { readableCommand = "Insert"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_INSERT)); #endif return; } else if (cmd.contains("<up>")) { readableCommand = "Up"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_UP)); #endif return; } else if (cmd.contains("<down>")) { readableCommand = "Down"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_DOWN)); #endif return; } else if (cmd.contains("<left>")) { readableCommand = "Left"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_LEFT)); #endif return; } else if (cmd.contains("<right>")) { readableCommand = "Right"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_RIGHT)); #endif return; } else if (cmd.contains("<space>")) { readableCommand = "Space"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_SPACE)); #endif return; } else { if (Settings::Instance()->serialCommands) { readableCommand = getCommandValue(cmd); Command *command = new Command(); if (readableCommand.contains("<0>")) { command->data->append(char(0)); } else if (readableCommand.contains("<1>")) { command->data->append(1); } else if (readableCommand.contains("<2>")) { command->data->append(2); } else { command->data->append(char(0)); } Serial::Instance()->sendCommand(*command); } return; } } else { readableCommand = getCommandValue(cmd); if (readableCommand.toLower().contains("execute") && Settings::Instance()->serialCommands) { Command *command = new Command(); if (readableCommand.contains("10")) { command->data->append(char(0)); } else if (readableCommand.contains("11")) { command->data->append(1); } else if (readableCommand.contains("12")) { command->data->append(2); } else { command->data->append(char(0)); } Serial::Instance()->sendCommand(*command); } else if (readableCommand == " ") { readableCommand = "Space"; #ifdef Q_OS_MAC KeyboardMac::Instance()->sendKeyPress(KeyboardMac::Instance()->keycodeToKey(KeyboardMac::KEYCODE_SPACE)); #endif } else { #ifdef Q_OS_MAC KeyboardMac::Instance()->sendEachKey(readableCommand); #endif } } }