Skip to content

Commit

Permalink
sync airmouse
Browse files Browse the repository at this point in the history
  • Loading branch information
xMasterX committed Mar 15, 2024
1 parent ead0694 commit 30378bc
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 12 deletions.
3 changes: 2 additions & 1 deletion non_catalog_apps/airmouse/application.fam
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ App(
stack_size=10 * 1024,
fap_category="GPIO",
fap_icon="mouse_10px.png",
fap_version="0.9",
fap_version="1.0",
fap_libs=["ble_profile"],
sources=["*.c", "*.cc"],
fap_libs=["ble_profile"],
)
1 change: 1 addition & 0 deletions non_catalog_apps/airmouse/tracking/sensors/mean_filter.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#define CARDBOARD_SDK_SENSORS_MEAN_FILTER_H_

#include <deque>
#include <cstddef>

#include "../util/vector.h"

Expand Down
1 change: 1 addition & 0 deletions non_catalog_apps/airmouse/tracking/sensors/median_filter.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#define CARDBOARD_SDK_SENSORS_MEDIAN_FILTER_H_

#include <deque>
#include <cstddef>

#include "../util/vector.h"

Expand Down
23 changes: 12 additions & 11 deletions non_catalog_apps/airmouse/views/bt_mouse.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@

#include <furi.h>
#include <furi_hal_bt.h>
#include <extra_profiles/hid_profile.h>
#include <furi_hal_usb_hid.h>
#include <profiles/serial_profile.h>
#include <extra_profiles/hid_profile.h>
#include <bt/bt_service/bt.h>
#include <gui/elements.h>
#include <notification/notification.h>
Expand All @@ -18,10 +19,10 @@ typedef struct ButtonEvent {
#define BTN_EVT_QUEUE_SIZE 32

struct BtMouse {
FuriHalBleProfileBase* hid;
View* view;
ViewDispatcher* view_dispatcher;
Bt* bt;
FuriHalBleProfileBase* ble_hid_profile;
NotificationApp* notifications;
FuriMutex* mutex;
FuriThread* thread;
Expand Down Expand Up @@ -119,7 +120,7 @@ static bool bt_mouse_input_callback(InputEvent* event, void* context) {
bool consumed = false;

if(event->type == InputTypeLong && event->key == InputKeyBack) {
ble_profile_hid_mouse_release_all(bt_mouse->ble_hid_profile);
ble_profile_hid_mouse_release_all(bt_mouse->hid);
} else {
bt_mouse_process(bt_mouse, event);
consumed = true;
Expand Down Expand Up @@ -204,18 +205,18 @@ static int32_t bt_mouse_thread_callback(void* context) {

if(bt_mouse->connected && send_buttons) {
if(event.state) {
ble_profile_hid_mouse_press(bt_mouse->ble_hid_profile, event.button);
ble_profile_hid_mouse_press(bt_mouse->hid, event.button);
} else {
ble_profile_hid_mouse_release(bt_mouse->ble_hid_profile, event.button);
ble_profile_hid_mouse_release(bt_mouse->hid, event.button);
}
}

if(bt_mouse->connected && (dx != 0 || dy != 0)) {
ble_profile_hid_mouse_move(bt_mouse->ble_hid_profile, dx, dy);
ble_profile_hid_mouse_move(bt_mouse->hid, dx, dy);
}

if(bt_mouse->connected && wheel != 0) {
ble_profile_hid_mouse_scroll(bt_mouse->ble_hid_profile, wheel);
ble_profile_hid_mouse_scroll(bt_mouse->hid, wheel);
}
}
}
Expand Down Expand Up @@ -254,8 +255,8 @@ void bt_mouse_enter_callback(void* context) {
bt_mouse->notifications = furi_record_open(RECORD_NOTIFICATION);
bt_set_status_changed_callback(
bt_mouse->bt, bt_mouse_connection_status_changed_callback, bt_mouse);
bt_mouse->ble_hid_profile = bt_profile_start(bt_mouse->bt, ble_profile_hid, NULL);
furi_check(bt_mouse->ble_hid_profile);
bt_mouse->hid = bt_profile_start(bt_mouse->bt, ble_profile_hid, NULL);
furi_assert(bt_mouse->hid);
furi_hal_bt_start_advertising();
bt_mouse_thread_start(bt_mouse);
}
Expand All @@ -280,8 +281,8 @@ void bt_mouse_exit_callback(void* context) {
tracking_end();
notification_internal_message(bt_mouse->notifications, &sequence_reset_blue);

bt_set_status_changed_callback(bt_mouse->bt, NULL, NULL);
furi_check(bt_profile_restore_default(bt_mouse->bt));
furi_hal_bt_stop_advertising();
bt_profile_restore_default(bt_mouse->bt);

furi_record_close(RECORD_NOTIFICATION);
bt_mouse->notifications = NULL;
Expand Down

0 comments on commit 30378bc

Please sign in to comment.