void ClientBMDVideohubTCP::setLock(uint8_t output, char newState) { _resetBuffer(); _addToBuffer_P(PSTR("VIDEO OUTPUT LOCKS:\n")); _addToBuffer(String(output - 1)); _addToBuffer_P(PSTR(" ")); _addToBuffer(String(newState)); _addToBuffer_P(PSTR("\n\n")); _sendBuffer(); }
void ClientKramerVSHDMIMatrix::routeInputToOutput(uint8_t input, uint8_t output) { _resetBuffer(); _addToBuffer_P(PSTR("#VID ")); _addToBuffer(String(input)); _addToBuffer_P(PSTR(">")); _addToBuffer(String(output)); _addToBuffer_P(PSTR("\r")); _sendBuffer(); }
void ClientBMDVideohubTCP::routeInputToOutput(uint8_t input, uint8_t output, bool waitForConfirmedChange) { _resetBuffer(); _addToBuffer_P(PSTR("VIDEO OUTPUT ROUTING:\n")); _addToBuffer(String(output - 1)); _addToBuffer_P(PSTR(" ")); _addToBuffer(String(input - 1)); _addToBuffer_P(PSTR("\n\n")); _sendBuffer(); if (waitForConfirmedChange) { unsigned long timer = millis(); while(_outputRouting[output - 1] != input-1 && millis()-500 < timer) { // 500 ms timeout if route is not set... runLoop(); } } }
/** * Sends a command request * Notice that str is in PROGMEM (pass string wrapped in PSTR("")) and command is a String object (useful for variable data, but more memory intensive.) */ void ClientBMDSmartView::_sendCmdRequest(uint8_t monId, const char *str, const String command) { _resetBuffer(); _addToBuffer_P(PSTR("MONITOR ")); _addToBuffer_P(monId==0?PSTR("A:\n"):PSTR("B:\n")); _addToBuffer_P(str); _addToBuffer(command); _addToBuffer_P(PSTR("\n\n")); _sendBuffer(); }