Skip to content

Commit 047e58b

Browse files
committed
feat: control Stop, Prev Track added
TODO: fix no scrollinf menu, fix pause function
1 parent 3039a12 commit 047e58b

5 files changed

Lines changed: 60 additions & 5 deletions

File tree

firmware/components/ble_hid/ble_hidd_main.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,12 @@ void ble_hid_pause(bool press) {
213213
}
214214
}
215215

216+
void ble_hid_stop(bool press) {
217+
if (sec_conn) {
218+
esp_hidd_send_consumer_value(hid_conn_id, HID_CONSUMER_STOP, press);
219+
}
220+
}
221+
216222
void ble_hid_mute(bool press) {
217223
if (sec_conn) {
218224
esp_hidd_send_consumer_value(hid_conn_id, HID_CONSUMER_MUTE, press);
@@ -226,6 +232,13 @@ void ble_hid_next_track(bool press) {
226232
}
227233
}
228234

235+
void ble_hid_prev_track(bool press) {
236+
if (sec_conn) {
237+
esp_hidd_send_consumer_value(hid_conn_id, HID_CONSUMER_SCAN_PREV_TRK,
238+
press);
239+
}
240+
}
241+
229242
void ble_hid_register_callback(hid_event_callback_f callback) {
230243
hid_event_callback = callback;
231244
}

firmware/components/ble_hid/ble_hidd_main.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ void ble_hid_volume_down(bool press);
1010
void ble_hid_volume_up(bool press);
1111
void ble_hid_play(bool press);
1212
void ble_hid_pause(bool press);
13+
void ble_hid_stop(bool press);
1314
void ble_hid_mute(bool press);
1415
void ble_hid_next_track(bool press);
16+
void ble_hid_prev_track(bool press);
1517
void ble_hid_get_device_name(char* device_name);
1618
void ble_hid_get_device_mac(uint8_t* mac);
1719
void ble_hid_register_callback(hid_event_callback_f callback);

firmware/main/apps/ble/hid_device/hid_module.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,26 @@ static void hid_module_cb_event_volumen(uint8_t button_name,
5959
ble_hid_play(true);
6060
ble_hid_play(false);
6161
hid_module_display_notify_play_pause();
62-
} else if (current_item == HID_DEVICE_MUTE) { // Nuevo
62+
} else if (current_item == HID_DEVICE_MUTE) {
6363
ble_hid_mute(true);
6464
ble_hid_mute(false);
6565
hid_module_display_notify_mute();
66-
} else if (current_item == HID_DEVICE_NEXT_TRACK) { // Nuevo
66+
} else if (current_item == HID_DEVICE_NEXT_TRACK) {
6767
ble_hid_next_track(true);
6868
ble_hid_next_track(false);
6969
hid_module_display_notify_next_track();
70+
} else if (current_item == HID_DEVICE_STOP) {
71+
ble_hid_stop(true);
72+
ble_hid_stop(false);
73+
hid_module_display_notify_stop();
74+
} else if (current_item == HID_DEVICE_PAUSE) {
75+
ble_hid_pause(true);
76+
ble_hid_pause(false);
77+
hid_module_display_notify_pause();
78+
} else if (current_item == HID_DEVICE_PREV_TRACK) {
79+
ble_hid_prev_track(true);
80+
ble_hid_prev_track(false);
81+
hid_module_display_notify_prev_track();
7082
}
7183
break;
7284
default:

firmware/main/apps/ble/hid_device/hid_screens.c

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,21 @@ void hid_module_display_notify_volumen_down() {
5656

5757
void hid_module_display_notify_play_pause() {
5858
led_control_run_effect(led_control_ble_tracking);
59-
genera_screen_display_notify_information("Notify", "Play/Pause");
59+
genera_screen_display_notify_information("Notify", "Play");
60+
vTaskDelay(500 / portTICK_PERIOD_MS);
61+
general_screen_display_menu(hid_current_item);
62+
}
63+
64+
void hid_module_display_notify_pause() {
65+
led_control_run_effect(led_control_pulse_leds);
66+
genera_screen_display_notify_information("Notify", "Pause");
67+
vTaskDelay(500 / portTICK_PERIOD_MS);
68+
general_screen_display_menu(hid_current_item);
69+
}
70+
71+
void hid_module_display_notify_stop() {
72+
led_control_run_effect(led_control_pulse_leds);
73+
genera_screen_display_notify_information("Notify", "Stop");
6074
vTaskDelay(500 / portTICK_PERIOD_MS);
6175
general_screen_display_menu(hid_current_item);
6276
}
@@ -75,6 +89,13 @@ void hid_module_display_notify_next_track() {
7589
general_screen_display_menu(hid_current_item);
7690
}
7791

92+
void hid_module_display_notify_prev_track() {
93+
led_control_run_effect(led_control_pulse_led_left);
94+
genera_screen_display_notify_information("Notify", "Previous Track");
95+
vTaskDelay(500 / portTICK_PERIOD_MS);
96+
general_screen_display_menu(hid_current_item);
97+
}
98+
7899
void hid_module_display_device_pairing() {
79100
led_control_run_effect(led_control_ble_spam_breathing);
80101
genera_screen_display_notify_information("Pairing", "Waiting conn");

firmware/main/apps/ble/hid_device/hid_screens.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,16 @@ enum {
1616
HID_DEVICE_VOL_UP,
1717
HID_DEVICE_VOL_DOWN,
1818
HID_DEVICE_PLAY,
19+
HID_DEVICE_PAUSE,
20+
HID_DEVICE_STOP,
1921
HID_DEVICE_MUTE,
2022
HID_DEVICE_NEXT_TRACK,
23+
HID_DEVICE_PREV_TRACK,
2124
HID_DEVICE_COUNT
2225
} hid_device_item = HID_DEVICE_VOL_UP;
23-
char* hid_device_items[HID_DEVICE_COUNT] = {"Volumen Up", "Volumen Down",
24-
"Play/Pause", "Mute", "Next Track"};
26+
char* hid_device_items[HID_DEVICE_COUNT] = {
27+
"Volumen Up", "Volumen Down", "Play", "Pause",
28+
"Stop", "Mute", "Next Track", "Previous Track"};
2529

2630
void hid_module_register_menu(menu_tree_t menu);
2731
void hid_clear_screen();
@@ -31,8 +35,11 @@ void hid_module_display_device_mac();
3135
void hid_module_display_notify_volumen_up();
3236
void hid_module_display_notify_volumen_down();
3337
void hid_module_display_notify_play_pause();
38+
void hid_module_display_notify_pause();
39+
void hid_module_display_notify_stop();
3440
void hid_module_display_notify_mute();
3541
void hid_module_display_notify_next_track();
42+
void hid_module_display_notify_prev_track();
3643
void hid_module_display_device_connection(bool status);
3744
void hid_module_display_device_pairing();
3845
void hid_module_display_device_information(char* title, char* body);

0 commit comments

Comments
 (0)