Roman Belyakovsky 2 лет назад
Родитель
Сommit
07c08b3ffb
1 измененных файлов с 36 добавлено и 11 удалено
  1. 36 11
      base_pack/hid_app/views/hid_ptt.c

+ 36 - 11
base_pack/hid_app/views/hid_ptt.c

@@ -52,6 +52,7 @@ enum HidPushToTalkAppIndex {
     HidPushToTalkAppIndexSlackHubble,
     HidPushToTalkAppIndexTeams,
     HidPushToTalkAppIndexTeamSpeak,
+    HidPushToTalkAppIndexWebex,
     HidPushToTalkAppIndexZoom,
     HidPushToTalkAppIndexSize,
 };
@@ -147,15 +148,7 @@ static void hid_ptt_trigger_camera_signal(HidPushToTalk* hid_ptt) {
 }
 
 // skype
-static void hid_ptt_start_ptt_linux_skype(HidPushToTalk* hid_ptt) {
-    hid_hal_keyboard_press(  hid_ptt->hid, KEY_MOD_LEFT_CTRL | HID_KEYBOARD_M);
-    hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_CTRL | HID_KEYBOARD_M);
-}
-static void hid_ptt_stop_ptt_linux_skype(HidPushToTalk* hid_ptt) {
-    hid_hal_keyboard_press(  hid_ptt->hid, KEY_MOD_LEFT_CTRL | HID_KEYBOARD_M);
-    hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_CTRL | HID_KEYBOARD_M);
-}
-static void hid_ptt_trigger_mute_linux_skype(HidPushToTalk* hid_ptt) {
+static void hid_ptt_trigger_mute_linux_skype(HidPushToTalk* hid_ptt) { // and webex
     hid_hal_keyboard_press(  hid_ptt->hid, KEY_MOD_LEFT_CTRL | HID_KEYBOARD_M);
     hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_CTRL | HID_KEYBOARD_M);
 }
@@ -264,6 +257,22 @@ static void hid_ptt_trigger_mute_jamulus(HidPushToTalk* hid_ptt) {
     hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_ALT | HID_KEYBOARD_M);
 }
 
+// webex
+
+
+static void hid_ptt_trigger_camera_webex(HidPushToTalk* hid_ptt) {
+    hid_hal_keyboard_press(  hid_ptt->hid, KEY_MOD_LEFT_CTRL| KEY_MOD_LEFT_SHIFT | HID_KEYBOARD_V);
+    hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_CTRL| KEY_MOD_LEFT_SHIFT | HID_KEYBOARD_V);
+}
+static void hid_ptt_trigger_hand_macos_webex(HidPushToTalk* hid_ptt) {
+    hid_hal_keyboard_press(  hid_ptt->hid, KEY_MOD_LEFT_GUI | KEY_MOD_RIGHT_SHIFT | HID_KEYBOARD_R);
+    hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_GUI | KEY_MOD_RIGHT_SHIFT | HID_KEYBOARD_R);
+}
+static void hid_ptt_trigger_hand_linux_webex(HidPushToTalk* hid_ptt) {
+    hid_hal_keyboard_press(  hid_ptt->hid, KEY_MOD_LEFT_CTRL | KEY_MOD_RIGHT_SHIFT | HID_KEYBOARD_R);
+    hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_CTRL | KEY_MOD_RIGHT_SHIFT | HID_KEYBOARD_R);
+}
+
 static void hid_ptt_menu_callback(void* context, uint32_t osIndex, FuriString* osLabel, uint32_t appIndex, FuriString* appLabel) {
     furi_assert(context);
     HidPushToTalk* hid_ptt = context;
@@ -344,6 +353,13 @@ static void hid_ptt_menu_callback(void* context, uint32_t osIndex, FuriString* o
                     model->callback_start_ptt      = hid_ptt_trigger_mute_macos_slack_hubble;
                     model->callback_stop_ptt       = hid_ptt_trigger_mute_macos_slack_hubble;
                     break;
+                case HidPushToTalkAppIndexWebex:
+                    model->callback_trigger_mute   = hid_ptt_trigger_cmd_shift_m;
+                    model->callback_trigger_camera = hid_ptt_trigger_camera_webex;
+                    model->callback_trigger_hand   = hid_ptt_trigger_hand_macos_webex;
+                    model->callback_start_ptt      = hid_ptt_trigger_cmd_shift_m;
+                    model->callback_stop_ptt       = hid_ptt_trigger_cmd_shift_m;
+                    break;
                 case HidPushToTalkAppIndexZoom:
                     model->callback_trigger_mute   = hid_ptt_trigger_mute_macos_zoom;
                     model->callback_trigger_camera = hid_ptt_trigger_camera_macos_zoom;
@@ -398,8 +414,8 @@ static void hid_ptt_menu_callback(void* context, uint32_t osIndex, FuriString* o
                 case HidPushToTalkAppIndexSkype:
                     model->callback_trigger_mute   = hid_ptt_trigger_mute_linux_skype;
                     model->callback_trigger_camera = hid_ptt_trigger_camera_linux_skype;
-                    model->callback_start_ptt      = hid_ptt_start_ptt_linux_skype;
-                    model->callback_stop_ptt       = hid_ptt_stop_ptt_linux_skype;
+                    model->callback_start_ptt      = hid_ptt_trigger_mute_linux_skype;
+                    model->callback_stop_ptt       = hid_ptt_trigger_mute_linux_skype;
                     break;
                 case HidPushToTalkAppIndexSlackCall:
                     model->callback_trigger_mute   = hid_ptt_trigger_mute_slack_call;
@@ -419,6 +435,13 @@ static void hid_ptt_menu_callback(void* context, uint32_t osIndex, FuriString* o
                     model->callback_start_ptt      = hid_ptt_start_ptt_meet_zoom;
                     model->callback_stop_ptt       = hid_ptt_stop_ptt_meet_zoom;
                     break;
+                case HidPushToTalkAppIndexWebex:
+                    model->callback_trigger_mute   = hid_ptt_trigger_mute_linux_skype;
+                    model->callback_trigger_camera = hid_ptt_trigger_camera_webex;
+                    model->callback_trigger_hand   = hid_ptt_trigger_hand_linux_webex;
+                    model->callback_start_ptt      = hid_ptt_trigger_mute_linux_skype;
+                    model->callback_stop_ptt       = hid_ptt_trigger_mute_linux_skype;
+                    break;
                 }
             }
 
@@ -761,6 +784,8 @@ HidPushToTalk* hid_ptt_alloc(Hid* hid) {
     ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Teams",           HidPushToTalkAppIndexTeams,          hid_ptt_menu_callback, hid_ptt);
     ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Zoom",            HidPushToTalkAppIndexZoom,           hid_ptt_menu_callback, hid_ptt);
     ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Zoom",            HidPushToTalkAppIndexZoom,           hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Webex",           HidPushToTalkAppIndexWebex,          hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Webex",           HidPushToTalkAppIndexWebex,          hid_ptt_menu_callback, hid_ptt);
 
     hid_ptt->help = widget_alloc();
     view_set_previous_callback(widget_get_view(hid_ptt->help), hid_ptt_view);