From 874ccbbbe025d06bc65b9ea97e044d45d547e5c0 Mon Sep 17 00:00:00 2001
From: Kshamendra <code@kshdev.slmail.me>
Date: Wed, 2 Oct 2024 20:52:25 +0530
Subject: [PATCH] fix(ui): making get_available_cameras() dynamic

---
 modules/ui.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/modules/ui.py b/modules/ui.py
index f6c3924..7a6cbe4 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -414,7 +414,7 @@ def create_root(
     # --- Camera Selection ---
     camera_label = ctk.CTkLabel(root, text="Select Camera:")
     camera_label.place(relx=0.4, rely=0.86, relwidth=0.2, relheight=0.05)
-    available_cameras = get_available_cameras()
+    available_cameras = get_available_cameras(10)
     # Convert camera indices to strings for CTkOptionMenu
     available_camera_strings = [str(cam) for cam in available_cameras]
     camera_variable = ctk.StringVar(
@@ -1018,14 +1018,14 @@ def webcam_preview(root: ctk.CTk, camera_index: int):
         create_source_target_popup_for_webcam(root, modules.globals.souce_target_map)
 
 
-def get_available_cameras():
+def get_available_cameras(max_cameras=10):
     """Returns a list of available camera indices."""
     available_cameras = []
-    for index in range(10):  # Check for cameras with index 0 to 9
-        camera = cv2.VideoCapture(index)
-        if camera.isOpened():
-            available_cameras.append(index)
-            camera.release()
+    for i in range(max_cameras):
+        cap = cv2.VideoCapture(i)
+        if cap.isOpened():
+            available_cameras.append(i)
+            cap.release()
     return available_cameras