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

+ 54 - 21
base_pack/hid_app/views/hid_ptt.c

@@ -44,6 +44,7 @@ enum HidPushToTalkAppIndex {
     HidPushToTalkAppIndexDiscord,
     HidPushToTalkAppIndexFaceTime,
     HidPushToTalkAppIndexGoogleMeet,
+    HidPushToTalkAppIndexGoogleHangouts,
     HidPushToTalkAppIndexJamulus,
     HidPushToTalkAppIndexSignal,
     HidPushToTalkAppIndexSkype,
@@ -117,6 +118,24 @@ static void hid_ptt_trigger_cmd_shift_m(HidPushToTalk* hid_ptt) {
     hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_GUI| KEY_MOD_LEFT_SHIFT | HID_KEYBOARD_M);
 }
 
+// Hangouts HidPushToTalkAppIndexGoogleHangouts
+static void hid_ptt_trigger_mute_macos_hangouts(HidPushToTalk* hid_ptt) {
+    hid_hal_keyboard_press(  hid_ptt->hid, KEY_MOD_LEFT_GUI | HID_KEYBOARD_D);
+    hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_GUI | HID_KEYBOARD_D);
+}
+static void hid_ptt_trigger_mute_linux_hangouts(HidPushToTalk* hid_ptt) {
+    hid_hal_keyboard_press(  hid_ptt->hid, KEY_MOD_LEFT_CTRL | HID_KEYBOARD_D);
+    hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_CTRL | HID_KEYBOARD_D);
+}
+static void hid_ptt_trigger_camera_macos_hangouts(HidPushToTalk* hid_ptt) { // and hand in teams
+    hid_hal_keyboard_press(  hid_ptt->hid, KEY_MOD_LEFT_GUI | HID_KEYBOARD_E);
+    hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_GUI | HID_KEYBOARD_E);
+}
+static void hid_ptt_trigger_camera_linux_hangouts(HidPushToTalk* hid_ptt) { // and hand in teams
+    hid_hal_keyboard_press(  hid_ptt->hid, KEY_MOD_LEFT_CTRL | HID_KEYBOARD_E);
+    hid_hal_keyboard_release(hid_ptt->hid, KEY_MOD_LEFT_CTRL | HID_KEYBOARD_E);
+}
+
 // Signal
 static void hid_ptt_trigger_mute_signal(HidPushToTalk* hid_ptt) {
     hid_hal_keyboard_press(  hid_ptt->hid, KEY_MOD_LEFT_SHIFT | HID_KEYBOARD_M);
@@ -272,6 +291,12 @@ static void hid_ptt_menu_callback(void* context, uint32_t osIndex, FuriString* o
                     model->callback_start_ptt      = hid_ptt_trigger_cmd_shift_m;
                     model->callback_stop_ptt       = hid_ptt_trigger_cmd_shift_m;
                     break;
+                case HidPushToTalkAppIndexGoogleHangouts:
+                    model->callback_trigger_mute   = hid_ptt_trigger_mute_macos_hangouts;
+                    model->callback_trigger_camera = hid_ptt_trigger_camera_macos_hangouts;
+                    model->callback_start_ptt      = hid_ptt_trigger_mute_macos_hangouts;
+                    model->callback_stop_ptt       = hid_ptt_trigger_mute_macos_hangouts;
+                    break;
                 case HidPushToTalkAppIndexGoogleMeet:
                     model->callback_trigger_mute   = hid_ptt_trigger_mute_macos_meet;
                     model->callback_trigger_camera = hid_ptt_trigger_camera_macos_meet;
@@ -334,6 +359,12 @@ static void hid_ptt_menu_callback(void* context, uint32_t osIndex, FuriString* o
                     model->callback_start_ptt      = hid_ptt_start_ptt_linux_discord;
                     model->callback_stop_ptt       = hid_ptt_stop_ptt_linux_discord;
                     break;
+                case HidPushToTalkAppIndexGoogleHangouts:
+                    model->callback_trigger_mute   = hid_ptt_trigger_mute_linux_hangouts;
+                    model->callback_trigger_camera = hid_ptt_trigger_camera_linux_hangouts;
+                    model->callback_start_ptt      = hid_ptt_trigger_mute_linux_hangouts;
+                    model->callback_stop_ptt       = hid_ptt_trigger_mute_linux_hangouts;
+                    break;
                 case HidPushToTalkAppIndexGoogleMeet:
                     model->callback_trigger_mute   = hid_ptt_trigger_mute_linux_meet;
                     model->callback_trigger_camera = hid_ptt_trigger_camera_linux_meet;
@@ -707,27 +738,29 @@ HidPushToTalk* hid_ptt_alloc(Hid* hid) {
     FURI_LOG_I(TAG, "Calling adding list");
     ptt_menu_add_list(hid->hid_ptt_menu, "macOS", HidPushToTalkMacOS);
     ptt_menu_add_list(hid->hid_ptt_menu, "Win/Linux", HidPushToTalkLinux);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Google Meet",  HidPushToTalkAppIndexGoogleMeet,  hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Google Meet",  HidPushToTalkAppIndexGoogleMeet,  hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Discord",      HidPushToTalkAppIndexDiscord,     hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Discord",      HidPushToTalkAppIndexDiscord,     hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "FaceTime",     HidPushToTalkAppIndexFaceTime,    hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Jamulus",      HidPushToTalkAppIndexJamulus,     hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Jamulus",      HidPushToTalkAppIndexJamulus,     hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Signal",       HidPushToTalkAppIndexSignal,      hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Signal",       HidPushToTalkAppIndexSignal,      hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Skype",        HidPushToTalkAppIndexSkype,       hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Skype",        HidPushToTalkAppIndexSkype,       hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Slack Call",   HidPushToTalkAppIndexSlackCall,   hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Slack Call",   HidPushToTalkAppIndexSlackCall,   hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Slack Hubble", HidPushToTalkAppIndexSlackHubble, hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Slack Hubble", HidPushToTalkAppIndexSlackHubble, hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "TeamSpeak",    HidPushToTalkAppIndexTeamSpeak,   hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "TeamSpeak",    HidPushToTalkAppIndexTeamSpeak,   hid_ptt_menu_callback, hid_ptt);
-    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Teams",        HidPushToTalkAppIndexTeams,       hid_ptt_menu_callback, hid_ptt);
-    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, "Google Meet",     HidPushToTalkAppIndexGoogleMeet,     hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Google Meet",     HidPushToTalkAppIndexGoogleMeet,     hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Google Hangouts", HidPushToTalkAppIndexGoogleHangouts, hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Google Hangouts", HidPushToTalkAppIndexGoogleHangouts, hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Discord",         HidPushToTalkAppIndexDiscord,        hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Discord",         HidPushToTalkAppIndexDiscord,        hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "FaceTime",        HidPushToTalkAppIndexFaceTime,       hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Jamulus",         HidPushToTalkAppIndexJamulus,        hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Jamulus",         HidPushToTalkAppIndexJamulus,        hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Signal",          HidPushToTalkAppIndexSignal,         hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Signal",          HidPushToTalkAppIndexSignal,         hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Skype",           HidPushToTalkAppIndexSkype,          hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Skype",           HidPushToTalkAppIndexSkype,          hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Slack Call",      HidPushToTalkAppIndexSlackCall,      hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Slack Call",      HidPushToTalkAppIndexSlackCall,      hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Slack Hubble",    HidPushToTalkAppIndexSlackHubble,    hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "Slack Hubble",    HidPushToTalkAppIndexSlackHubble,    hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "TeamSpeak",       HidPushToTalkAppIndexTeamSpeak,      hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkLinux, "TeamSpeak",       HidPushToTalkAppIndexTeamSpeak,      hid_ptt_menu_callback, hid_ptt);
+    ptt_menu_add_item_to_list(hid->hid_ptt_menu, HidPushToTalkMacOS, "Teams",           HidPushToTalkAppIndexTeams,          hid_ptt_menu_callback, hid_ptt);
+    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);
 
     hid_ptt->help = widget_alloc();
     view_set_previous_callback(widget_get_view(hid_ptt->help), hid_ptt_view);