[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>
This commit is contained in:
jay candel
2024-10-09 10:55:58 +08:00
committed by GitHub
parent 8461a95ac6
commit 8348510476
21 changed files with 1585 additions and 0 deletions

View File

@@ -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)

File diff suppressed because it is too large Load Diff

View 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)

View File

@@ -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;

View File

@@ -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");
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 B

View File

@@ -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,
1 entry status name type params
4038 Variable + I_dry_19x20 const Icon
4039 Variable + I_dry_hover_19x20 const Icon
4040 Variable + I_dry_text_15x5 const Icon
4041 Variable + I_eject_19x20 const Icon
4042 Variable + I_eject_hover_19x20 const Icon
4043 Variable + I_eject_text_19x5 const Icon
4044 Variable + I_err_01 const Icon
4045 Variable + I_err_02 const Icon
4046 Variable + I_err_03 const Icon
4054 Variable + I_exit_text_18x5 const Icon
4055 Variable + I_fahren_24x23 const Icon
4056 Variable + I_fahren_hover_24x23 const Icon
4057 Variable + I_fast_backward_19x20 const Icon
4058 Variable + I_fast_backward_hover_19x20 const Icon
4059 Variable + I_fast_backward_text_19x6 const Icon
4060 Variable + I_fast_f_19x20 const Icon
4061 Variable + I_fast_f_hover_19x20 const Icon
4062 Variable + I_fast_f_text_19x6 const Icon
4063 Variable + I_file_10px const Icon
4064 Variable + I_floppydisk_10px const Icon
4065 Variable + I_green_19x20 const Icon
4102 Variable + I_off_19x20 const Icon
4103 Variable + I_off_hover_19x20 const Icon
4104 Variable + I_off_text_12x5 const Icon
4105 Variable + I_ok_19x20 const Icon
4106 Variable + I_ok_hover_19x20 const Icon
4107 Variable + I_ok_text_19x5 const Icon
4108 Variable + I_on_text_9x5 const Icon
4109 Variable + I_passport_128x64 const Icon
4110 Variable + I_passport_bad_46x49 const Icon
4138 Variable + I_sub1_10px const Icon
4139 Variable + I_subplaylist_10px const Icon
4140 Variable + I_subrem_10px const Icon
4141 Variable + I_subtitle_19x20 const Icon
4142 Variable + I_subtitle_hover_19x20 const Icon
4143 Variable + I_subtitle_text_19x5 const Icon
4144 Variable + I_timer_19x20 const Icon
4145 Variable + I_timer_hover_19x20 const Icon
4146 Variable + I_timer_text_23x5 const Icon