diff --git a/Platformio/hardware/ESP32/infrared_sender_hal_esp32.cpp b/Platformio/hardware/ESP32/infrared_sender_hal_esp32.cpp index c2fdceb..c4559cf 100644 --- a/Platformio/hardware/ESP32/infrared_sender_hal_esp32.cpp +++ b/Platformio/hardware/ESP32/infrared_sender_hal_esp32.cpp @@ -24,7 +24,8 @@ enum IRprotocols { IR_PROTOCOL_SAMSUNG = 2, IR_PROTOCOL_SONY = 3, IR_PROTOCOL_RC5 = 4, - IR_PROTOCOL_DENON = 5 + IR_PROTOCOL_DENON = 5, + IR_PROTOCOL_SAMSUNG36 = 6 }; void sendIRcode_HAL(int protocol, std::list commandPayloads, std::string additionalPayload) { switch (protocol) { @@ -129,5 +130,16 @@ void sendIRcode_HAL(int protocol, std::list commandPayloads, std::s } break; } + + case IR_PROTOCOL_SAMSUNG36: { + auto current = commandPayloads.begin(); + std::string dataStr = *current; + // https://cplusplus.com/reference/string/stoull/ + std::string::size_type sz = 0; // alias of size_t + const uint64_t data = std::stoull(dataStr, &sz, 0); + Serial.printf("execute: will send IR SAMSUNG36, data %s (%" PRIu64 ")\r\n", dataStr.c_str(), data); + IrSender.sendSamsung36(data); + break; + } } } \ No newline at end of file diff --git a/Platformio/hardware/windows_linux/infrared_sender_hal_windows_linux.cpp b/Platformio/hardware/windows_linux/infrared_sender_hal_windows_linux.cpp index 04a9487..4e4cb3d 100644 --- a/Platformio/hardware/windows_linux/infrared_sender_hal_windows_linux.cpp +++ b/Platformio/hardware/windows_linux/infrared_sender_hal_windows_linux.cpp @@ -11,7 +11,8 @@ enum IRprotocols { IR_PROTOCOL_SAMSUNG = 2, IR_PROTOCOL_SONY = 3, IR_PROTOCOL_RC5 = 4, - IR_PROTOCOL_DENON = 5 + IR_PROTOCOL_DENON = 5, + IR_PROTOCOL_SAMSUNG36 = 6 }; void sendIRcode_HAL(int protocol, std::list commandPayloads, std::string additionalPayload) { } \ No newline at end of file diff --git a/Platformio/platformio.ini b/Platformio/platformio.ini index f2819ea..196abb0 100644 --- a/Platformio/platformio.ini +++ b/Platformio/platformio.ini @@ -144,6 +144,7 @@ build_src_filter = +<*> +<../hardware/ESP32/*> ;+<../hardware/ESP32/lib/ESP32-BLE-Keyboard/*> + - ; use this if you are using Ubuntu or WSL2 (64 bit compiler) [env:linux_64bit] @@ -168,6 +169,7 @@ build_flags = build_src_filter = +<*> +<../hardware/windows_linux/*> + - ; use this if you are using Windows MSYS2 MINGW64 (64 bit compiler) [env:windows_64bit] diff --git a/Platformio/src/applicationInternal/hardware/hardwarePresenter.h b/Platformio/src/applicationInternal/hardware/hardwarePresenter.h index ac69907..1145f1c 100644 --- a/Platformio/src/applicationInternal/hardware/hardwarePresenter.h +++ b/Platformio/src/applicationInternal/hardware/hardwarePresenter.h @@ -54,7 +54,8 @@ enum IRprotocols { IR_PROTOCOL_SAMSUNG = 2, IR_PROTOCOL_SONY = 3, IR_PROTOCOL_RC5 = 4, - IR_PROTOCOL_DENON = 5 + IR_PROTOCOL_DENON = 5, + IR_PROTOCOL_SAMSUNG36 = 6 }; void sendIRcode(IRprotocols protocol, std::list commandPayloads, std::string additionalPayload); diff --git a/Platformio/src/devices/AVreceiver/device_denonAvr/device_denonAvr.cpp b/Platformio/src/devices_pool/AVreceiver/device_denonAvr/device_denonAvr.cpp similarity index 100% rename from Platformio/src/devices/AVreceiver/device_denonAvr/device_denonAvr.cpp rename to Platformio/src/devices_pool/AVreceiver/device_denonAvr/device_denonAvr.cpp diff --git a/Platformio/src/devices/AVreceiver/device_denonAvr/device_denonAvr.h b/Platformio/src/devices_pool/AVreceiver/device_denonAvr/device_denonAvr.h similarity index 100% rename from Platformio/src/devices/AVreceiver/device_denonAvr/device_denonAvr.h rename to Platformio/src/devices_pool/AVreceiver/device_denonAvr/device_denonAvr.h diff --git a/Platformio/src/devices_pool/AVreceiver/device_lgsoundbar/device_lgsoundbar.cpp b/Platformio/src/devices_pool/AVreceiver/device_lgsoundbar/device_lgsoundbar.cpp new file mode 100644 index 0000000..93ca1ee --- /dev/null +++ b/Platformio/src/devices_pool/AVreceiver/device_lgsoundbar/device_lgsoundbar.cpp @@ -0,0 +1,71 @@ +#include +#include "applicationInternal/commandHandler.h" +#include "applicationInternal/hardware/hardwarePresenter.h" +#include "device_lgsoundbar.h" + +uint16_t LGSOUNDBAR_POWER; +//uint16_t LGSOUNDBAR_FUNCTION; +//uint16_t LGSOUNDBAR_FOLDER_UP; +//uint16_t LGSOUNDBAR_FOLDER_DOWN; +//uint16_t LGSOUNDBAR_OPTICAL; +//uint16_t LGSOUNDBAR_MUTE; +//uint16_t LGSOUNDBAR_VOLUME_UP; +//uint16_t LGSOUNDBAR_VOLUME_DOWN; +//uint16_t LGSOUNDBAR_AUTOPOWER; +//uint16_t LGSOUNDBAR_AV_SYNC; +//uint16_t LGSOUNDBAR_INFO; +//uint16_t LGSOUNDBAR_CURSOR_UP; +//uint16_t LGSOUNDBAR_LEFT; +//uint16_t LGSOUNDBAR_ENTER; +//uint16_t LGSOUNDBAR_RIGHT; +//uint16_t LGSOUNDBAR_CURSOR_DOWN; +//uint16_t LGSOUNDBAR_SOUND_EFFECT; +//uint16_t LGSOUNDBAR_AUTOVOLUME; +uint16_t LGSOUNDBAR_WOOFER_LEVEL; +//uint16_t LGSOUNDBAR_1; +//uint16_t LGSOUNDBAR_2; +//uint16_t LGSOUNDBAR_3; +//uint16_t LGSOUNDBAR_4; +//uint16_t LGSOUNDBAR_5; +//uint16_t LGSOUNDBAR_6; +//uint16_t LGSOUNDBAR_7; +//uint16_t LGSOUNDBAR_8; +//uint16_t LGSOUNDBAR_9; +//uint16_t LGSOUNDBAR_0; +//uint16_t LGSOUNDBAR_DOBLY_DRC; +//uint16_t LGSOUNDBAR_SLEEP; + +void register_device_lgsoundbar() { + // LG SOUNDBAR Remote AKB73575421 + register_command(&LGSOUNDBAR_POWER, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x34347887"}})); + //register_command(&LGSOUNDBAR_FUNCTION, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x343451AE"}})); + //register_command(&LGSOUNDBAR_FOLDER_UP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x343430CF"}})); + //register_command(&LGSOUNDBAR_FOLDER_DOWN, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434B04F"}})); + //register_command(&LGSOUNDBAR_OPTICAL, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x34346D92"}})); + //register_command(&LGSOUNDBAR_MUTE, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434F807"}})); + //register_command(&LGSOUNDBAR_VOLUME_UP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434E817"}})); + //register_command(&LGSOUNDBAR_VOLUME_DOWN, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x34346897"}})); + //register_command(&LGSOUNDBAR_AUTOPOWER, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434C936"}})); + //register_command(&LGSOUNDBAR_AV_SYNC, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x34349B64"}})); + //register_command(&LGSOUNDBAR_INFO, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434C53A"}})); + //register_command(&LGSOUNDBAR_CURSOR_UP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434728D"}})); + //register_command(&LGSOUNDBAR_LEFT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434609F"}})); + //register_command(&LGSOUNDBAR_ENTER, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434A05F"}})); + //register_command(&LGSOUNDBAR_RIGHT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434E01F"}})); + //register_command(&LGSOUNDBAR_CURSOR_DOWN, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434F20D"}})); + //register_command(&LGSOUNDBAR_SOUND_EFFECT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434F40B"}})); + //register_command(&LGSOUNDBAR_AUTOVOLUME, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x343438C7"}})); + register_command(&LGSOUNDBAR_WOOFER_LEVEL, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x34346699"}})); + //register_command(&LGSOUNDBAR_1, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434827D"}})); + //register_command(&LGSOUNDBAR_2, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x343442BD"}})); + //register_command(&LGSOUNDBAR_3, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434C23D"}})); + //register_command(&LGSOUNDBAR_4, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x343422DD"}})); + //register_command(&LGSOUNDBAR_5, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434A25D"}})); + //register_command(&LGSOUNDBAR_6, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434629D"}})); + //register_command(&LGSOUNDBAR_7, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434E21D"}})); + //register_command(&LGSOUNDBAR_8, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x343412ED"}})); + //register_command(&LGSOUNDBAR_9, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434926D"}})); + //register_command(&LGSOUNDBAR_0, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x3434D22D"}})); + //register_command(&LGSOUNDBAR_DOBLY_DRC, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x343446B9"}})); + //register_command(&LGSOUNDBAR_SLEEP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0x343443BC"}})); +} \ No newline at end of file diff --git a/Platformio/src/devices_pool/AVreceiver/device_lgsoundbar/device_lgsoundbar.h b/Platformio/src/devices_pool/AVreceiver/device_lgsoundbar/device_lgsoundbar.h new file mode 100644 index 0000000..8e25622 --- /dev/null +++ b/Platformio/src/devices_pool/AVreceiver/device_lgsoundbar/device_lgsoundbar.h @@ -0,0 +1,35 @@ +#pragma once + +extern uint16_t LGSOUNDBAR_POWER; +//extern uint16_t LGSOUNDBAR_FUNCTION; +//extern uint16_t LGSOUNDBAR_FOLDER_UP; +//extern uint16_t LGSOUNDBAR_FOLDER_DOWN; +//extern uint16_t LGSOUNDBAR_OPTICAL; +//extern uint16_t LGSOUNDBAR_MUTE; +//extern uint16_t LGSOUNDBAR_VOLUME_UP; +//extern uint16_t LGSOUNDBAR_VOLUME_DOWN; +//extern uint16_t LGSOUNDBAR_AUTOPOWER; +//extern uint16_t LGSOUNDBAR_AV_SYNC; +//extern uint16_t LGSOUNDBAR_INFO; +//extern uint16_t LGSOUNDBAR_CURSOR_UP; +//extern uint16_t LGSOUNDBAR_LEFT; +//extern uint16_t LGSOUNDBAR_ENTER; +//extern uint16_t LGSOUNDBAR_RIGHT; +//extern uint16_t LGSOUNDBAR_CURSOR_DOWN; +//extern uint16_t LGSOUNDBAR_SOUND_EFFECT; +//extern uint16_t LGSOUNDBAR_AUTOVOLUME; +extern uint16_t LGSOUNDBAR_WOOFER_LEVEL; +//extern uint16_t LGSOUNDBAR_1; +//extern uint16_t LGSOUNDBAR_2; +//extern uint16_t LGSOUNDBAR_3; +//extern uint16_t LGSOUNDBAR_4; +//extern uint16_t LGSOUNDBAR_5; +//extern uint16_t LGSOUNDBAR_6; +//extern uint16_t LGSOUNDBAR_7; +//extern uint16_t LGSOUNDBAR_8; +//extern uint16_t LGSOUNDBAR_9; +//extern uint16_t LGSOUNDBAR_0; +//extern uint16_t LGSOUNDBAR_DOBLY_DRC; +//extern uint16_t LGSOUNDBAR_SLEEP; + +void register_device_lgsoundbar(); \ No newline at end of file diff --git a/Platformio/src/devices_pool/README b/Platformio/src/devices_pool/README new file mode 100644 index 0000000..cb92c1c --- /dev/null +++ b/Platformio/src/devices_pool/README @@ -0,0 +1,8 @@ + +This directory is intended for a pool of devices already contributed by the community of OMOTE. +Files in this directory won't get compiled by default. + +If you want to use one of these devices, then +- copy the corresponding device folder from "/src/devices_pool/..." to "/src/devices/..." +- add the corresponding call to "register_device_*()" into "/src/main.cpp" (and include the device header file in "/src/main.cpp" as well) +- start using the commands defined by the device, e.g. by putting them in the hardware key map of "scene__default.cpp" or of a specific scene diff --git a/Platformio/src/devices_pool/TV/device_lgTV/device_lgTV.cpp b/Platformio/src/devices_pool/TV/device_lgTV/device_lgTV.cpp new file mode 100644 index 0000000..b7933a0 --- /dev/null +++ b/Platformio/src/devices_pool/TV/device_lgTV/device_lgTV.cpp @@ -0,0 +1,119 @@ +#include +#include "applicationInternal/commandHandler.h" +#include "applicationInternal/hardware/hardwarePresenter.h" +#include "device_lgTV.h" + +// Only activate the commands that are used. Every command takes 100 bytes, wether used or not. +uint16_t LGTV_POWER_TOGGLE; +uint16_t LGTV_SOURCE; +uint16_t LGTV_NUM_1; +uint16_t LGTV_NUM_2; +uint16_t LGTV_NUM_3; +uint16_t LGTV_NUM_4; +uint16_t LGTV_NUM_5; +uint16_t LGTV_NUM_6; +uint16_t LGTV_NUM_7; +uint16_t LGTV_NUM_8; +uint16_t LGTV_NUM_9; +uint16_t LGTV_NUM_0; +uint16_t LGTV_PRECH; +uint16_t LGTV_VOL_MINUS; +uint16_t LGTV_VOL_PLUS; +uint16_t LGTV_MUTE_TOGGLE; +//uint16_t LGTV_CHLIST; +uint16_t LGTV_CHANNEL_UP; +uint16_t LGTV_CHANNEL_DOWN; +uint16_t LGTV_MENU; // Q-Menu +//uint16_t LGTV_APPS; +uint16_t LGTV_GUIDE; +uint16_t LGTV_SETUP; +uint16_t LGTV_INFO; +uint16_t LGTV_UP; +uint16_t LGTV_DOWN; +uint16_t LGTV_LEFT; +uint16_t LGTV_RIGHT; +uint16_t LGTV_OK; +uint16_t LGTV_RETURN; +uint16_t LGTV_EXIT; +uint16_t LGTV_KEY_A; +uint16_t LGTV_KEY_B; +uint16_t LGTV_KEY_C; +uint16_t LGTV_KEY_D; +//uint16_t LGTV_PSIZE; +//uint16_t LGTV_ADSUBT; +//uint16_t LGTV_REWIND; +//uint16_t LGTV_PAUSE; +//uint16_t LGTV_FASTFORWARD; +//uint16_t LGTV_RECORD; +//uint16_t LGTV_PLAY; +//uint16_t LGTV_STOP; +//uint16_t LGTV_POWER_OFF; +//uint16_t LGTV_POWER_ON; +uint16_t LGTV_INPUT_HDMI_1; +uint16_t LGTV_INPUT_HDMI_2; +uint16_t LGTV_INPUT_HDMI_3; +//uint16_t LGTV_INPUT_COMPONENT; +uint16_t LGTV_INPUT_TV; +//uint16_t LGTV_SLEEP; +uint16_t LGTV_3D; +uint16_t LGTV_HOME; + +void register_device_lgTV() +{ + // https://github.com/natcl/studioimaginaire/blob/master/arduino_remote/ircodes.py + // https://tasmota.github.io/docs/Codes-for-IR-Remotes/#lg-55uh8509-tv + // Tested on LG 42LA6208-ZA + + register_command(&LGTV_POWER_TOGGLE , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF10EF"})); + register_command(&LGTV_SOURCE , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFD02F"})); + register_command(&LGTV_NUM_1 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF8877"})); + register_command(&LGTV_NUM_2 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF48B7"})); + register_command(&LGTV_NUM_3 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFC837"})); + register_command(&LGTV_NUM_4 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF28D7"})); + register_command(&LGTV_NUM_5 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFA857"})); + register_command(&LGTV_NUM_6 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF6897"})); + register_command(&LGTV_NUM_7 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFE817"})); + register_command(&LGTV_NUM_8 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF18E7"})); + register_command(&LGTV_NUM_9 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF9867"})); + register_command(&LGTV_NUM_0 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF08F7"})); + register_command(&LGTV_PRECH , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF5BA7"})); + register_command(&LGTV_VOL_MINUS , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFC03F"})); + register_command(&LGTV_VOL_PLUS , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF40BF"})); + register_command(&LGTV_MUTE_TOGGLE , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF906F"})); + //register_command(&LGTV_CHLIST , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFCA35"})); + register_command(&LGTV_CHANNEL_UP , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF00FF"})); + register_command(&LGTV_CHANNEL_DOWN , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF807F"})); + register_command(&LGTV_MENU , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFA25D"})); + register_command(&LGTV_GUIDE , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFD52A"})); + register_command(&LGTV_SETUP , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFC23D"})); + register_command(&LGTV_INFO , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF55AA"})); + register_command(&LGTV_UP , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF02FD"})); + register_command(&LGTV_DOWN , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF827D"})); + register_command(&LGTV_LEFT , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFE01F"})); + register_command(&LGTV_RIGHT , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF609F"})); + register_command(&LGTV_OK , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF22DD"})); + register_command(&LGTV_RETURN , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF14EB"})); + register_command(&LGTV_EXIT , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFDA25"})); + register_command(&LGTV_KEY_A , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF4EB1"})); // Red + register_command(&LGTV_KEY_B , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF8E71"})); // Green + register_command(&LGTV_KEY_C , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFC639"})); // Yellow + register_command(&LGTV_KEY_D , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF8679"})); // Blue + //register_command(&LGTV_PSIZE , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF0EF1"})); + //register_command(&LGTV_ADSUBT , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF8976"})); + //register_command(&LGTV_REWIND , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFF10E"})); + //register_command(&LGTV_PAUSE , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF5DA2"})); + //register_command(&LGTV_FASTFORWARD , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF718E"})); + //register_command(&LGTV_RECORD , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFBD42"})); + //register_command(&LGTV_PLAY , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF0DF2"})); + //register_command(&LGTV_STOP , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF8D72"})); + //register_command(&LGTV_POWER_OFF , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFA35C"})); + //register_command(&LGTV_POWER_ON , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF23DC"})); + register_command(&LGTV_INPUT_HDMI_1 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF738C"})); + register_command(&LGTV_INPUT_HDMI_2 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF33CC"})); + register_command(&LGTV_INPUT_HDMI_3 , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF9768"})); + //register_command(&LGTV_INPUT_COMPONENT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DFFD02"})); + register_command(&LGTV_INPUT_TV , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF6B94"})); + //register_command(&LGTV_SLEEP , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF58A7"})); + register_command(&LGTV_3D , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF3BC4"})); + register_command(&LGTV_HOME , makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x20DF3EC1"})); +} \ No newline at end of file diff --git a/Platformio/src/devices_pool/TV/device_lgTV/device_lgTV.h b/Platformio/src/devices_pool/TV/device_lgTV/device_lgTV.h new file mode 100644 index 0000000..e9d150f --- /dev/null +++ b/Platformio/src/devices_pool/TV/device_lgTV/device_lgTV.h @@ -0,0 +1,58 @@ +#pragma once + +// Only activate the commands that are used. Every command takes 100 bytes, wether used or not. +extern uint16_t LGTV_POWER_TOGGLE; +extern uint16_t LGTV_SOURCE; +extern uint16_t LGTV_NUM_1; +extern uint16_t LGTV_NUM_2; +extern uint16_t LGTV_NUM_3; +extern uint16_t LGTV_NUM_4; +extern uint16_t LGTV_NUM_5; +extern uint16_t LGTV_NUM_6; +extern uint16_t LGTV_NUM_7; +extern uint16_t LGTV_NUM_8; +extern uint16_t LGTV_NUM_9; +extern uint16_t LGTV_NUM_0; +extern uint16_t LGTV_PRECH; +extern uint16_t LGTV_VOL_MINUS; +extern uint16_t LGTV_VOL_PLUS; +extern uint16_t LGTV_MUTE_TOGGLE; +//extern uint16_t LGTV_CHLIST; +extern uint16_t LGTV_CHANNEL_UP; +extern uint16_t LGTV_CHANNEL_DOWN; +extern uint16_t LGTV_MENU; // Q-Menu +//extern uint16_t LGTV_APPS; +extern uint16_t LGTV_GUIDE; +extern uint16_t LGTV_SETUP; +extern uint16_t LGTV_INFO; +extern uint16_t LGTV_UP; +extern uint16_t LGTV_DOWN; +extern uint16_t LGTV_LEFT; +extern uint16_t LGTV_RIGHT; +extern uint16_t LGTV_OK; +extern uint16_t LGTV_RETURN; +extern uint16_t LGTV_EXIT; +extern uint16_t LGTV_KEY_A; +extern uint16_t LGTV_KEY_B; +extern uint16_t LGTV_KEY_C; +extern uint16_t LGTV_KEY_D; +//extern uint16_t LGTV_PSIZE; +//extern uint16_t LGTV_ADSUBT; +//extern uint16_t LGTV_REWIND; +//extern uint16_t LGTV_PAUSE; +//extern uint16_t LGTV_FASTFORWARD; +//extern uint16_t LGTV_RECORD; +//extern uint16_t LGTV_PLAY; +//extern uint16_t LGTV_STOP; +//extern uint16_t LGTV_POWER_OFF; +//extern uint16_t LGTV_POWER_ON; +extern uint16_t LGTV_INPUT_HDMI_1; +extern uint16_t LGTV_INPUT_HDMI_2; +extern uint16_t LGTV_INPUT_HDMI_3; +extern uint16_t LGTV_INPUT_TV; +//extern uint16_t LGTV_INPUT_COMPONENT; +//extern uint16_t LGTV_SLEEP; +extern uint16_t LGTV_3D; +extern uint16_t LGTV_HOME; + +void register_device_lgTV(); \ No newline at end of file diff --git a/Platformio/src/devices_pool/mediaPlayer/device_lgbluray/device_lgbluray.cpp b/Platformio/src/devices_pool/mediaPlayer/device_lgbluray/device_lgbluray.cpp new file mode 100644 index 0000000..ebf2726 --- /dev/null +++ b/Platformio/src/devices_pool/mediaPlayer/device_lgbluray/device_lgbluray.cpp @@ -0,0 +1,77 @@ +#include +#include "applicationInternal/commandHandler.h" +#include "applicationInternal/hardware/hardwarePresenter.h" +#include "device_lgbluray.h" + +uint16_t LGBLURAY_POWER; +uint16_t LGBLURAY_OPEN_CLOSE; +//uint16_t LGBLURAY_1; +//uint16_t LGBLURAY_2; +//uint16_t LGBLURAY_3; +//uint16_t LGBLURAY_4; +//uint16_t LGBLURAY_5; +//uint16_t LGBLURAY_6; +//uint16_t LGBLURAY_7; +//uint16_t LGBLURAY_8; +//uint16_t LGBLURAY_9; +//uint16_t LGBLURAY_0; +//uint16_t LGBLURAY_TITLE_POPUP; +//uint16_t LGBLURAY_REPEAT; +uint16_t LGBLURAY_REW; +uint16_t LGBLURAY_FF; +uint16_t LGBLURAY_PREVIOUS; +uint16_t LGBLURAY_SKIP; +uint16_t LGBLURAY_PAUSE; +uint16_t LGBLURAY_PLAY; +uint16_t LGBLURAY_STOP; +uint16_t LGBLURAY_HOME; +uint16_t LGBLURAY_INFO; +uint16_t LGBLURAY_CURSOR_UP; +uint16_t LGBLURAY_LEFT; +uint16_t LGBLURAY_ENTER; +uint16_t LGBLURAY_RIGHT; +uint16_t LGBLURAY_CURSOR_DOWN; +uint16_t LGBLURAY_BACK; +uint16_t LGBLURAY_DISC_MENU; +uint16_t LGBLURAY_KEY_A; +uint16_t LGBLURAY_KEY_B; +uint16_t LGBLURAY_KEY_C; +uint16_t LGBLURAY_KEY_D; + +void register_device_lgbluray() { + // LG BLURAY Remote AKB73896401 + register_command(&LGBLURAY_POWER, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B40CF3"}})); + register_command(&LGBLURAY_OPEN_CLOSE, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B46C93"}})); + //register_command(&LGBLURAY_1, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4DC23"}})); + //register_command(&LGBLURAY_2, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B43CC3"}})); + //register_command(&LGBLURAY_3, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4BC43"}})); + //register_command(&LGBLURAY_4, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B47C83"}})); + //register_command(&LGBLURAY_5, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4FC03"}})); + //register_command(&LGBLURAY_6, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B402FD"}})); + //register_command(&LGBLURAY_7, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4827D"}})); + //register_command(&LGBLURAY_8, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B442BD"}})); + //register_command(&LGBLURAY_9, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4C23D"}})); + //register_command(&LGBLURAY_0, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B422DD"}})); + //register_command(&LGBLURAY_TITLE_POPUP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B452AD"}})); + //register_command(&LGBLURAY_REPEAT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4CA35"}})); + register_command(&LGBLURAY_REW, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B44CB3"}})); + register_command(&LGBLURAY_FF, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4CC33"}})); + register_command(&LGBLURAY_PREVIOUS, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4AC53"}})); + register_command(&LGBLURAY_SKIP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B42CD3"}})); + register_command(&LGBLURAY_PAUSE, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B41CE3"}})); + register_command(&LGBLURAY_PLAY, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B48C73"}})); + register_command(&LGBLURAY_STOP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B49C63"}})); + register_command(&LGBLURAY_HOME, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4E619"}})); + register_command(&LGBLURAY_INFO, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B45CA3"}})); + register_command(&LGBLURAY_CURSOR_UP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4E21D"}})); + register_command(&LGBLURAY_LEFT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B49A65"}})); + register_command(&LGBLURAY_ENTER, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B41AE5"}})); + register_command(&LGBLURAY_RIGHT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B45AA5"}})); + register_command(&LGBLURAY_CURSOR_DOWN, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B412ED"}})); + register_command(&LGBLURAY_BACK, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4A25D"}})); + register_command(&LGBLURAY_DISC_MENU, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4D22D"}})); + register_command(&LGBLURAY_KEY_A, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B43EC1"}})); + register_command(&LGBLURAY_KEY_B, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4BE41"}})); + register_command(&LGBLURAY_KEY_C, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B47E81"}})); + register_command(&LGBLURAY_KEY_D, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG), {"0xB4B4FE01"}})); +} \ No newline at end of file diff --git a/Platformio/src/devices_pool/mediaPlayer/device_lgbluray/device_lgbluray.h b/Platformio/src/devices_pool/mediaPlayer/device_lgbluray/device_lgbluray.h new file mode 100644 index 0000000..6620abe --- /dev/null +++ b/Platformio/src/devices_pool/mediaPlayer/device_lgbluray/device_lgbluray.h @@ -0,0 +1,38 @@ +#pragma once + +extern uint16_t LGBLURAY_POWER; +extern uint16_t LGBLURAY_OPEN_CLOSE; +//extern uint16_t LGBLURAY_1; +//extern uint16_t LGBLURAY_2; +//extern uint16_t LGBLURAY_3; +//extern uint16_t LGBLURAY_4; +//extern uint16_t LGBLURAY_5; +//extern uint16_t LGBLURAY_6; +//extern uint16_t LGBLURAY_7; +//extern uint16_t LGBLURAY_8; +//extern uint16_t LGBLURAY_9; +//extern uint16_t LGBLURAY_0; +//extern uint16_t LGBLURAY_TITLE_POPUP; +extern uint16_t LGBLURAY_REPEAT; +extern uint16_t LGBLURAY_REW; +extern uint16_t LGBLURAY_FF; +extern uint16_t LGBLURAY_PREVIOUS; +extern uint16_t LGBLURAY_SKIP; +extern uint16_t LGBLURAY_PAUSE; +extern uint16_t LGBLURAY_PLAY; +extern uint16_t LGBLURAY_STOP; +extern uint16_t LGBLURAY_HOME; +extern uint16_t LGBLURAY_INFO; +extern uint16_t LGBLURAY_CURSOR_UP; +extern uint16_t LGBLURAY_LEFT; +extern uint16_t LGBLURAY_ENTER; +extern uint16_t LGBLURAY_RIGHT; +extern uint16_t LGBLURAY_CURSOR_DOWN; +extern uint16_t LGBLURAY_BACK; +extern uint16_t LGBLURAY_DISC_MENU; +extern uint16_t LGBLURAY_KEY_A; +extern uint16_t LGBLURAY_KEY_B; +extern uint16_t LGBLURAY_KEY_C; +extern uint16_t LGBLURAY_KEY_D; + +void register_device_lgbluray(); \ No newline at end of file diff --git a/Platformio/src/devices_pool/mediaPlayer/device_samsungbluray/device_samsungbluray.cpp b/Platformio/src/devices_pool/mediaPlayer/device_samsungbluray/device_samsungbluray.cpp new file mode 100644 index 0000000..40a6ef0 --- /dev/null +++ b/Platformio/src/devices_pool/mediaPlayer/device_samsungbluray/device_samsungbluray.cpp @@ -0,0 +1,92 @@ +#include +#include "applicationInternal/commandHandler.h" +#include "applicationInternal/hardware/hardwarePresenter.h" +#include "device_samsungbluray.h" + +uint16_t SAMSUNGBLURAY_POWER; +uint16_t SAMSUNGBLURAY_OPEN_CLOSE; +//uint16_t SAMSUNGBLURAY_1; +//uint16_t SAMSUNGBLURAY_2; +//uint16_t SAMSUNGBLURAY_3; +//uint16_t SAMSUNGBLURAY_4; +//uint16_t SAMSUNGBLURAY_5; +//uint16_t SAMSUNGBLURAY_6; +//uint16_t SAMSUNGBLURAY_7; +//uint16_t SAMSUNGBLURAY_8; +//uint16_t SAMSUNGBLURAY_9; +//uint16_t SAMSUNGBLURAY_0; +uint16_t SAMSUNGBLURAY_DISC_MENU; +//uint16_t SAMSUNGBLURAY_TITLE_POPUP; +uint16_t SAMSUNGBLURAY_PREVIOUS; +uint16_t SAMSUNGBLURAY_SKIP; +uint16_t SAMSUNGBLURAY_REW; +uint16_t SAMSUNGBLURAY_FF; +uint16_t SAMSUNGBLURAY_STOP; +uint16_t SAMSUNGBLURAY_PLAY; +uint16_t SAMSUNGBLURAY_PAUSE; +uint16_t SAMSUNGBLURAY_AUDIO; +uint16_t SAMSUNGBLURAY_HOME; +uint16_t SAMSUNGBLURAY_SUBTITLE; +uint16_t SAMSUNGBLURAY_TOOLS; +uint16_t SAMSUNGBLURAY_INFO; +uint16_t SAMSUNGBLURAY_CURSOR_UP; +uint16_t SAMSUNGBLURAY_LEFT; +uint16_t SAMSUNGBLURAY_ENTER; +uint16_t SAMSUNGBLURAY_RIGHT; +uint16_t SAMSUNGBLURAY_CURSOR_DOWN; +uint16_t SAMSUNGBLURAY_BACK; +uint16_t SAMSUNGBLURAY_EXIT; +uint16_t SAMSUNGBLURAY_KEY_A; +uint16_t SAMSUNGBLURAY_KEY_B; +uint16_t SAMSUNGBLURAY_KEY_C; +uint16_t SAMSUNGBLURAY_KEY_D; +//uint16_t SAMSUNGBLURAY_VIEW; +//uint16_t SAMSUNGBLURAY_A_B; +//uint16_t SAMSUNGBLURAY_REPEAT; +//uint16_t SAMSUNGBLURAY_SCREEN; + +void register_device_samsungbluray() +{ + // SAMSUNG BLURAY AKB73896401 + register_command(&SAMSUNGBLURAY_POWER, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E00FF"}})); + register_command(&SAMSUNGBLURAY_OPEN_CLOSE, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E807F"}})); + //register_command(&SAMSUNGBLURAY_1, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E40BF"}})); + //register_command(&SAMSUNGBLURAY_2, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400EC03F"}})); + //register_command(&SAMSUNGBLURAY_3, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E20DF"}})); + //register_command(&SAMSUNGBLURAY_4, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400EA05F"}})); + //register_command(&SAMSUNGBLURAY_5, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E609F"}})); + //register_command(&SAMSUNGBLURAY_6, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400EE01F"}})); + //register_command(&SAMSUNGBLURAY_7, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E10EF"}})); + //register_command(&SAMSUNGBLURAY_8, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E906F"}})); + //register_command(&SAMSUNGBLURAY_9, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E50AF"}})); + //register_command(&SAMSUNGBLURAY_0, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400ED02F"}})); + register_command(&SAMSUNGBLURAY_DISC_MENU, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400EB847"}})); + //register_command(&SAMSUNGBLURAY_TITLE_POPUP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E04FB"}})); + register_command(&SAMSUNGBLURAY_PREVIOUS, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400EB04F"}})); + register_command(&SAMSUNGBLURAY_SKIP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E8877"}})); + register_command(&SAMSUNGBLURAY_REW, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E48B7"}})); + register_command(&SAMSUNGBLURAY_FF, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400EA857"}})); + register_command(&SAMSUNGBLURAY_STOP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400EC837"}})); + register_command(&SAMSUNGBLURAY_PLAY, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E28D7"}})); + register_command(&SAMSUNGBLURAY_PAUSE, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E4CB3"}})); + register_command(&SAMSUNGBLURAY_AUDIO, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400EA45B"}})); + register_command(&SAMSUNGBLURAY_HOME, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E6897"}})); + register_command(&SAMSUNGBLURAY_SUBTITLE, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E649B"}})); + register_command(&SAMSUNGBLURAY_TOOLS, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E5CA3"}})); + register_command(&SAMSUNGBLURAY_INFO, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E7887"}})); + register_command(&SAMSUNGBLURAY_CURSOR_UP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E18E7"}})); + register_command(&SAMSUNGBLURAY_LEFT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400ED827"}})); + register_command(&SAMSUNGBLURAY_ENTER, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E38C7"}})); + register_command(&SAMSUNGBLURAY_RIGHT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E58A7"}})); + register_command(&SAMSUNGBLURAY_CURSOR_DOWN, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E9867"}})); + register_command(&SAMSUNGBLURAY_BACK, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400EE817"}})); + register_command(&SAMSUNGBLURAY_EXIT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400ED42B"}})); + register_command(&SAMSUNGBLURAY_KEY_A, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E847B"}})); + register_command(&SAMSUNGBLURAY_KEY_B, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E44BB"}})); + register_command(&SAMSUNGBLURAY_KEY_C, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400EC43B"}})); + register_command(&SAMSUNGBLURAY_KEY_D, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E24DB"}})); + //register_command(&SAMSUNGBLURAY_VIEW, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400ECC33"}})); + //register_command(&SAMSUNGBLURAY_A_B, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E05C8"}})); + //register_command(&SAMSUNGBLURAY_REPEAT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400EE41B"}})); + //register_command(&SAMSUNGBLURAY_SCREEN, makeCommandData(IR, {std::to_string(IR_PROTOCOL_SAMSUNG36), {"0x400E9C63"}})); +} \ No newline at end of file diff --git a/Platformio/src/devices_pool/mediaPlayer/device_samsungbluray/device_samsungbluray.h b/Platformio/src/devices_pool/mediaPlayer/device_samsungbluray/device_samsungbluray.h new file mode 100644 index 0000000..3af68b5 --- /dev/null +++ b/Platformio/src/devices_pool/mediaPlayer/device_samsungbluray/device_samsungbluray.h @@ -0,0 +1,45 @@ +#pragma once + +extern uint16_t SAMSUNGBLURAY_POWER; +extern uint16_t SAMSUNGBLURAY_OPEN_CLOSE; +//extern uint16_t SAMSUNGBLURAY_1; +//extern uint16_t SAMSUNGBLURAY_2; +//extern uint16_t SAMSUNGBLURAY_3; +//extern uint16_t SAMSUNGBLURAY_4; +//extern uint16_t SAMSUNGBLURAY_5; +//extern uint16_t SAMSUNGBLURAY_6; +//extern uint16_t SAMSUNGBLURAY_7; +//extern uint16_t SAMSUNGBLURAY_8; +//extern uint16_t SAMSUNGBLURAY_9; +//extern uint16_t SAMSUNGBLURAY_0; +extern uint16_t SAMSUNGBLURAY_DISC_MENU; +//extern uint16_t SAMSUNGBLURAY_TITLE_POPUP; +extern uint16_t SAMSUNGBLURAY_PREVIOUS; +extern uint16_t SAMSUNGBLURAY_SKIP; +extern uint16_t SAMSUNGBLURAY_REW; +extern uint16_t SAMSUNGBLURAY_FF; +extern uint16_t SAMSUNGBLURAY_STOP; +extern uint16_t SAMSUNGBLURAY_PLAY; +extern uint16_t SAMSUNGBLURAY_PAUSE; +extern uint16_t SAMSUNGBLURAY_AUDIO; +extern uint16_t SAMSUNGBLURAY_HOME; +extern uint16_t SAMSUNGBLURAY_SUBTITLE; +extern uint16_t SAMSUNGBLURAY_TOOLS; +extern uint16_t SAMSUNGBLURAY_INFO; +extern uint16_t SAMSUNGBLURAY_CURSOR_UP; +extern uint16_t SAMSUNGBLURAY_LEFT; +extern uint16_t SAMSUNGBLURAY_ENTER; +extern uint16_t SAMSUNGBLURAY_RIGHT; +extern uint16_t SAMSUNGBLURAY_CURSOR_DOWN; +extern uint16_t SAMSUNGBLURAY_BACK; +extern uint16_t SAMSUNGBLURAY_EXIT; +extern uint16_t SAMSUNGBLURAY_KEY_A; +extern uint16_t SAMSUNGBLURAY_KEY_B; +extern uint16_t SAMSUNGBLURAY_KEY_C; +extern uint16_t SAMSUNGBLURAY_KEY_D; +//extern uint16_t SAMSUNGBLURAY_VIEW; +//extern uint16_t SAMSUNGBLURAY_A_B; +//extern uint16_t SAMSUNGBLURAY_REPEAT; +//extern uint16_t SAMSUNGBLURAY_SCREEN; + +void register_device_samsungbluray(); \ No newline at end of file diff --git a/Platformio/src/devices_pool/mediaPlayer/device_shield/device_shield.cpp b/Platformio/src/devices_pool/mediaPlayer/device_shield/device_shield.cpp new file mode 100644 index 0000000..70e7e9b --- /dev/null +++ b/Platformio/src/devices_pool/mediaPlayer/device_shield/device_shield.cpp @@ -0,0 +1,36 @@ +#include +#include "applicationInternal/commandHandler.h" +#include "applicationInternal/hardware/hardwarePresenter.h" +#include "device_shield.h" + +uint16_t SHIELD_POWER_TOGGLE; +uint16_t SHIELD_MENU; // +uint16_t SHIELD_EXIT; // ESC +uint16_t SHIELD_STOP; // x +uint16_t SHIELD_PLAY; // space +uint16_t SHIELD_FORWARD; // f +uint16_t SHIELD_REVERSE; // r +uint16_t SHIELD_UP; // up +uint16_t SHIELD_DOWN; // down +uint16_t SHIELD_LEFT; // left +uint16_t SHIELD_RIGHT; // right +uint16_t SHIELD_OK; // return +uint16_t SHIELD_SHIELD; // ? + +void register_device_shield() { +// http://www.hifi-remote.com/wiki/index.php/Infrared_Protocol_Primer +// https://www.avsforum.com/threads/discrete-ir-code-list-for-nvidia-shield-tv.2126570/ + register_command(&SHIELD_POWER_TOGGLE, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017E609F"})); + register_command(&SHIELD_MENU, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017E906F"})); + register_command(&SHIELD_EXIT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017E40BF"})); + register_command(&SHIELD_STOP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017EE01F"})); + register_command(&SHIELD_PLAY, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017E8877"})); + register_command(&SHIELD_FORWARD, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017EF00F"})); + register_command(&SHIELD_REVERSE, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017E50AF"})); + register_command(&SHIELD_UP, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017E30CF"})); + register_command(&SHIELD_DOWN, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017E708F"})); + register_command(&SHIELD_LEFT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017ED02F"})); + register_command(&SHIELD_RIGHT, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017EB04F"})); + register_command(&SHIELD_OK, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017EC03F"})); + register_command(&SHIELD_SHIELD, makeCommandData(IR, {std::to_string(IR_PROTOCOL_NEC), "0x017E847B"})); +} \ No newline at end of file diff --git a/Platformio/src/devices_pool/mediaPlayer/device_shield/device_shield.h b/Platformio/src/devices_pool/mediaPlayer/device_shield/device_shield.h new file mode 100644 index 0000000..79e2958 --- /dev/null +++ b/Platformio/src/devices_pool/mediaPlayer/device_shield/device_shield.h @@ -0,0 +1,17 @@ +#pragma once + +extern uint16_t SHIELD_POWER_TOGGLE; +extern uint16_t SHIELD_MENU; +extern uint16_t SHIELD_EXIT; +extern uint16_t SHIELD_STOP; +extern uint16_t SHIELD_PLAY; +extern uint16_t SHIELD_FORWARD; +extern uint16_t SHIELD_REVERSE; +extern uint16_t SHIELD_UP; +extern uint16_t SHIELD_DOWN; +extern uint16_t SHIELD_LEFT; +extern uint16_t SHIELD_RIGHT; +extern uint16_t SHIELD_OK; +extern uint16_t SHIELD_SHIELD; + +void register_device_shield(); \ No newline at end of file diff --git a/Platformio/src/main.cpp b/Platformio/src/main.cpp index 839d394..0515123 100644 --- a/Platformio/src/main.cpp +++ b/Platformio/src/main.cpp @@ -4,15 +4,26 @@ // init hardware and hardware loop #include "applicationInternal/hardware/hardwarePresenter.h" // register devices and their commands +// special #include "devices/misc/device_specialCommands.h" -#include "devices/TV/device_samsungTV/device_samsungTV.h" -#include "devices/AVreceiver/device_yamahaAmp/device_yamahaAmp.h" -#include "devices/AVreceiver/device_denonAvr/device_denonAvr.h" -#include "devices/mediaPlayer/device_appleTV/device_appleTV.h" +#include "applicationInternal/commandHandler.h" +// keyboards #include "devices/keyboard/device_keyboard_mqtt/device_keyboard_mqtt.h" #include "devices/keyboard/device_keyboard_ble/device_keyboard_ble.h" +// TV +#include "devices/TV/device_samsungTV/device_samsungTV.h" +//#include "devices/TV/device_lgTV/device_lgTV.h" +// AV receiver +#include "devices/AVreceiver/device_yamahaAmp/device_yamahaAmp.h" +//#include "devices/AVreceiver/device_denonAvr/device_denonAvr.h" +//#include "devices/AVreceiver/device_lgsoundbar/device_lgsoundbar.h" +// media player +#include "devices/mediaPlayer/device_appleTV/device_appleTV.h" +//#include "devices/mediaPlayer/device_lgbluray/device_lgbluray.h" +//#include "devices/mediaPlayer/device_samsungbluray/device_samsungbluray.h" +//#include "devices/mediaPlayer/device_shield/device_shield.h" +// misc #include "devices/misc/device_smarthome/device_smarthome.h" -#include "applicationInternal/commandHandler.h" // register gui and keys #include "applicationInternal/gui/guiBase.h" #include "applicationInternal/gui/guiRegistry.h" @@ -68,11 +79,21 @@ int main(int argc, char *argv[]) { // register commands for the devices register_specialCommands(); + // TV register_device_samsungTV(); +// register_device_lgTV(); + // AV receiver register_device_yamahaAmp(); - register_device_denonAvr(); - register_device_smarthome(); + //register_device_denonAvr(); + //register_device_lgsoundbar(); + // media player register_device_appleTV(); + //register_device_lgbluray(); + //register_device_samsungbluray(); + //register_device_shield(); + // misc + register_device_smarthome(); + #if (ENABLE_KEYBOARD_MQTT == 1) register_device_keyboard_mqtt(); #endif