[IR] Bluray/DVD Universal Remote (#250)
* New Bluray/DVD Remote Icons * add Bluray/DVD Universal Remote * update api_symbols v73.2 * Delete api_symbols.csv * update api_symbols v73.2 * update f18 api_symbols v73.2 * update api_symbols v73.2 fr this time * add new bluray universal db * update api_symbols to LF * convert icons to 1-bit B&W * fbt format * Must be in line with OFW * Tweak buttons a little * add ok button icons * change 'stop' button to 'ok' * add new ok icons * update ok icons to 1bit b&w * update f7 api_symbols * update bluray_dvd.ir * update bluray universal remote changed stop to 'ok' changed next & prev to fast f and fast b * new icons * update icons to 1-bit BW * fbt format * Delete applications/main/infrared/infrared_scene_universal_bluray.c * Add files via upload * Add files via upload * change ok icon to a tick * the last commit. gotta remember to format icons as 1bit BW lmao * Update changelog --------- Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
@@ -24,6 +24,7 @@
|
||||
- Static encrypted backdoor support: collects static encrypted nonces to be cracked by MFKey using NXP/Fudan backdoor, allowing key recovery of all non-hardened MIFARE Classic tags on-device
|
||||
- Add SmartRider Parser (#203 by @jaylikesbunda)
|
||||
- Add API to enforce ISO15693 mode (#225 by @aaronjamt)
|
||||
- Infrared: Bluray/DVD Universal Remote (#250 by @jaylikesbunda)
|
||||
- BadKB:
|
||||
- OFW: Add linux/gnome badusb demo files (by @thomasnemer)
|
||||
- Add older qFlipper install demos for windows and macos (by @DXVVAY & @grugnoymeme)
|
||||
|
||||
1388
applications/main/infrared/resources/infrared/assets/bluray_dvd.ir
Normal file
@@ -21,6 +21,7 @@ ADD_SCENE(infrared, universal_audio, UniversalAudio)
|
||||
ADD_SCENE(infrared, universal_ac, UniversalAC)
|
||||
ADD_SCENE(infrared, universal_leds, UniversalLEDs)
|
||||
ADD_SCENE(infrared, universal_fan, UniversalFan)
|
||||
ADD_SCENE(infrared, universal_bluray, UniversalBluray)
|
||||
ADD_SCENE(infrared, universal_monitor, UniversalMonitor)
|
||||
ADD_SCENE(infrared, universal_digital_sign, UniversalDigitalSign)
|
||||
ADD_SCENE(infrared, gpio_settings, GpioSettings)
|
||||
|
||||
@@ -7,6 +7,7 @@ typedef enum {
|
||||
SubmenuIndexUniversalAirConditioner,
|
||||
SubmenuIndexUniversalLEDs,
|
||||
SubmenuIndexUniversalFan,
|
||||
SubmenuIndexUniversalBluray,
|
||||
SubmenuIndexUniversalMonitor,
|
||||
SubmenuIndexUniversalDigitalSign,
|
||||
} SubmenuIndex;
|
||||
@@ -62,6 +63,13 @@ void infrared_scene_universal_on_enter(void* context) {
|
||||
infrared_scene_universal_submenu_callback,
|
||||
context);
|
||||
|
||||
submenu_add_item(
|
||||
submenu,
|
||||
"Blu-ray/DVDs",
|
||||
SubmenuIndexUniversalBluray,
|
||||
infrared_scene_universal_submenu_callback,
|
||||
context);
|
||||
|
||||
submenu_add_item(
|
||||
submenu,
|
||||
"Monitors",
|
||||
@@ -106,6 +114,9 @@ bool infrared_scene_universal_on_event(void* context, SceneManagerEvent event) {
|
||||
} else if(event.event == SubmenuIndexUniversalFan) {
|
||||
scene_manager_next_scene(scene_manager, InfraredSceneUniversalFan);
|
||||
consumed = true;
|
||||
} else if(event.event == SubmenuIndexUniversalBluray) {
|
||||
scene_manager_next_scene(scene_manager, InfraredSceneUniversalBluray);
|
||||
consumed = true;
|
||||
} else if(event.event == SubmenuIndexUniversalMonitor) {
|
||||
scene_manager_next_scene(scene_manager, InfraredSceneUniversalMonitor);
|
||||
consumed = true;
|
||||
|
||||
@@ -0,0 +1,169 @@
|
||||
#include "../infrared_app_i.h"
|
||||
#include "common/infrared_scene_universal_common.h"
|
||||
|
||||
#define TAG "InfraredUniversalBlurayDVD"
|
||||
|
||||
void infrared_scene_universal_bluray_on_enter(void* context) {
|
||||
InfraredApp* infrared = context;
|
||||
ButtonPanel* button_panel = infrared->button_panel;
|
||||
InfraredBruteForce* brute_force = infrared->brute_force;
|
||||
|
||||
FURI_LOG_I(TAG, "Entering Universal Blu-ray/DVD scene");
|
||||
|
||||
infrared_brute_force_set_db_filename(brute_force, EXT_PATH("infrared/assets/bluray_dvd.ir"));
|
||||
FURI_LOG_I(TAG, "Set database filename: %s", EXT_PATH("infrared/assets/bluray_dvd.ir"));
|
||||
|
||||
button_panel_reserve(button_panel, 2, 4);
|
||||
uint32_t i = 0;
|
||||
|
||||
// Power button
|
||||
button_panel_add_item(
|
||||
button_panel,
|
||||
i,
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
13,
|
||||
&I_power_19x20,
|
||||
&I_power_hover_19x20,
|
||||
infrared_scene_universal_common_item_callback,
|
||||
context);
|
||||
button_panel_add_icon(button_panel, 4, 35, &I_power_text_24x5);
|
||||
infrared_brute_force_add_record(brute_force, i++, "Power");
|
||||
|
||||
// Eject button (using mute icon as a placeholder)
|
||||
button_panel_add_item(
|
||||
button_panel,
|
||||
i,
|
||||
1,
|
||||
0,
|
||||
39,
|
||||
13,
|
||||
&I_eject_19x20,
|
||||
&I_eject_hover_19x20,
|
||||
infrared_scene_universal_common_item_callback,
|
||||
context);
|
||||
button_panel_add_icon(button_panel, 39, 35, &I_eject_text_19x5);
|
||||
infrared_brute_force_add_record(brute_force, i++, "Eject");
|
||||
|
||||
// Play button
|
||||
button_panel_add_item(
|
||||
button_panel,
|
||||
i,
|
||||
0,
|
||||
1,
|
||||
6,
|
||||
42,
|
||||
&I_play_19x20,
|
||||
&I_play_hover_19x20,
|
||||
infrared_scene_universal_common_item_callback,
|
||||
context);
|
||||
button_panel_add_icon(button_panel, 6, 64, &I_play_text_19x5);
|
||||
infrared_brute_force_add_record(brute_force, i++, "Play");
|
||||
|
||||
// Pause button
|
||||
button_panel_add_item(
|
||||
button_panel,
|
||||
i,
|
||||
1,
|
||||
1,
|
||||
39,
|
||||
42,
|
||||
&I_pause_19x20,
|
||||
&I_pause_hover_19x20,
|
||||
infrared_scene_universal_common_item_callback,
|
||||
context);
|
||||
button_panel_add_icon(button_panel, 37, 64, &I_pause_text_23x5);
|
||||
infrared_brute_force_add_record(brute_force, i++, "Pause");
|
||||
|
||||
// Fast Backward
|
||||
button_panel_add_item(
|
||||
button_panel,
|
||||
i,
|
||||
0,
|
||||
2,
|
||||
6,
|
||||
71,
|
||||
&I_fast_backward_19x20,
|
||||
&I_fast_backward_hover_19x20,
|
||||
infrared_scene_universal_common_item_callback,
|
||||
context);
|
||||
button_panel_add_icon(button_panel, 4, 93, &I_fast_backward_text_19x6);
|
||||
infrared_brute_force_add_record(brute_force, i++, "Fast_ba");
|
||||
|
||||
// Fast Forward button
|
||||
button_panel_add_item(
|
||||
button_panel,
|
||||
i,
|
||||
1,
|
||||
2,
|
||||
39,
|
||||
71,
|
||||
&I_fast_f_19x20,
|
||||
&I_fast_f_hover_19x20,
|
||||
infrared_scene_universal_common_item_callback,
|
||||
context);
|
||||
button_panel_add_icon(button_panel, 39, 93, &I_fast_f_text_19x6);
|
||||
infrared_brute_force_add_record(brute_force, i++, "Fast_fo");
|
||||
|
||||
// OK/Select Button
|
||||
button_panel_add_item(
|
||||
button_panel,
|
||||
i,
|
||||
0,
|
||||
3,
|
||||
6,
|
||||
101,
|
||||
&I_ok_19x20,
|
||||
&I_ok_hover_19x20,
|
||||
infrared_scene_universal_common_item_callback,
|
||||
context);
|
||||
button_panel_add_icon(button_panel, 6, 123, &I_ok_text_19x5);
|
||||
infrared_brute_force_add_record(brute_force, i++, "Ok");
|
||||
|
||||
// Subtitle/CC Button
|
||||
button_panel_add_item(
|
||||
button_panel,
|
||||
i,
|
||||
1,
|
||||
3,
|
||||
39,
|
||||
101,
|
||||
&I_subtitle_19x20,
|
||||
&I_subtitle_hover_19x20,
|
||||
infrared_scene_universal_common_item_callback,
|
||||
context);
|
||||
button_panel_add_icon(button_panel, 39, 123, &I_subtitle_text_19x5);
|
||||
infrared_brute_force_add_record(brute_force, i++, "Subtitle");
|
||||
|
||||
button_panel_add_label(button_panel, 1, 11, FontPrimary, "Blu-ray/DVD");
|
||||
|
||||
FURI_LOG_I(TAG, "Calling infrared_scene_universal_common_on_enter");
|
||||
infrared_scene_universal_common_on_enter(context);
|
||||
FURI_LOG_I(TAG, "Finished infrared_scene_universal_common_on_enter");
|
||||
}
|
||||
|
||||
bool infrared_scene_universal_bluray_on_event(void* context, SceneManagerEvent event) {
|
||||
FURI_LOG_D(
|
||||
TAG, "Universal Blu-ray/DVD scene event: type=%d, event=%ld", event.type, event.event);
|
||||
|
||||
bool result = infrared_scene_universal_common_on_event(context, event);
|
||||
|
||||
FURI_LOG_D(TAG, "infrared_scene_universal_common_on_event result: %d", result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void infrared_scene_universal_bluray_on_exit(void* context) {
|
||||
FURI_LOG_D(TAG, "Exiting Universal Blu-ray/DVD scene");
|
||||
|
||||
InfraredApp* infrared = context;
|
||||
FURI_LOG_D(
|
||||
TAG,
|
||||
"Brute force state before exit: started=%d",
|
||||
infrared_brute_force_is_started(infrared->brute_force));
|
||||
|
||||
infrared_scene_universal_common_on_exit(context);
|
||||
|
||||
FURI_LOG_D(TAG, "Finished exiting Universal Blu-ray/DVD scene");
|
||||
}
|
||||
BIN
assets/icons/Infrared/eject_19x20.png
Normal file
|
After Width: | Height: | Size: 121 B |
BIN
assets/icons/Infrared/eject_hover_19x20.png
Normal file
|
After Width: | Height: | Size: 116 B |
BIN
assets/icons/Infrared/eject_text_19x5.png
Normal file
|
After Width: | Height: | Size: 85 B |
BIN
assets/icons/Infrared/fast_backward_19x20.png
Normal file
|
After Width: | Height: | Size: 127 B |
BIN
assets/icons/Infrared/fast_backward_hover_19x20.png
Normal file
|
After Width: | Height: | Size: 123 B |
BIN
assets/icons/Infrared/fast_backward_text_19x6.png
Normal file
|
After Width: | Height: | Size: 85 B |
BIN
assets/icons/Infrared/fast_f_19x20.png
Normal file
|
After Width: | Height: | Size: 127 B |
BIN
assets/icons/Infrared/fast_f_hover_19x20.png
Normal file
|
After Width: | Height: | Size: 124 B |
BIN
assets/icons/Infrared/fast_f_text_19x6.png
Normal file
|
After Width: | Height: | Size: 85 B |
BIN
assets/icons/Infrared/ok_19x20.png
Normal file
|
After Width: | Height: | Size: 125 B |
BIN
assets/icons/Infrared/ok_hover_19x20.png
Normal file
|
After Width: | Height: | Size: 120 B |
BIN
assets/icons/Infrared/ok_text_19x5.png
Normal file
|
After Width: | Height: | Size: 86 B |
BIN
assets/icons/Infrared/subtitle_19x20.png
Normal file
|
After Width: | Height: | Size: 123 B |
BIN
assets/icons/Infrared/subtitle_hover_19x20.png
Normal file
|
After Width: | Height: | Size: 115 B |
BIN
assets/icons/Infrared/subtitle_text_19x5.png
Normal file
|
After Width: | Height: | Size: 85 B |
@@ -4038,6 +4038,9 @@ Variable,+,I_dolph_cry_49x54,const Icon,
|
||||
Variable,+,I_dry_19x20,const Icon,
|
||||
Variable,+,I_dry_hover_19x20,const Icon,
|
||||
Variable,+,I_dry_text_15x5,const Icon,
|
||||
Variable,+,I_eject_19x20,const Icon,
|
||||
Variable,+,I_eject_hover_19x20,const Icon,
|
||||
Variable,+,I_eject_text_19x5,const Icon,
|
||||
Variable,+,I_err_01,const Icon,
|
||||
Variable,+,I_err_02,const Icon,
|
||||
Variable,+,I_err_03,const Icon,
|
||||
@@ -4051,6 +4054,12 @@ Variable,+,I_exit_hover_19x20,const Icon,
|
||||
Variable,+,I_exit_text_18x5,const Icon,
|
||||
Variable,+,I_fahren_24x23,const Icon,
|
||||
Variable,+,I_fahren_hover_24x23,const Icon,
|
||||
Variable,+,I_fast_backward_19x20,const Icon,
|
||||
Variable,+,I_fast_backward_hover_19x20,const Icon,
|
||||
Variable,+,I_fast_backward_text_19x6,const Icon,
|
||||
Variable,+,I_fast_f_19x20,const Icon,
|
||||
Variable,+,I_fast_f_hover_19x20,const Icon,
|
||||
Variable,+,I_fast_f_text_19x6,const Icon,
|
||||
Variable,+,I_file_10px,const Icon,
|
||||
Variable,+,I_floppydisk_10px,const Icon,
|
||||
Variable,+,I_green_19x20,const Icon,
|
||||
@@ -4093,6 +4102,9 @@ Variable,+,I_next_text_19x6,const Icon,
|
||||
Variable,+,I_off_19x20,const Icon,
|
||||
Variable,+,I_off_hover_19x20,const Icon,
|
||||
Variable,+,I_off_text_12x5,const Icon,
|
||||
Variable,+,I_ok_19x20,const Icon,
|
||||
Variable,+,I_ok_hover_19x20,const Icon,
|
||||
Variable,+,I_ok_text_19x5,const Icon,
|
||||
Variable,+,I_on_text_9x5,const Icon,
|
||||
Variable,+,I_passport_128x64,const Icon,
|
||||
Variable,+,I_passport_bad_46x49,const Icon,
|
||||
@@ -4126,6 +4138,9 @@ Variable,+,I_stop_text_19x5,const Icon,
|
||||
Variable,+,I_sub1_10px,const Icon,
|
||||
Variable,+,I_subplaylist_10px,const Icon,
|
||||
Variable,+,I_subrem_10px,const Icon,
|
||||
Variable,+,I_subtitle_19x20,const Icon,
|
||||
Variable,+,I_subtitle_hover_19x20,const Icon,
|
||||
Variable,+,I_subtitle_text_19x5,const Icon,
|
||||
Variable,+,I_timer_19x20,const Icon,
|
||||
Variable,+,I_timer_hover_19x20,const Icon,
|
||||
Variable,+,I_timer_text_23x5,const Icon,
|
||||
|
||||
|