27 lines
886 B
Python
27 lines
886 B
Python
import sys
|
|
|
|
from PyQt5.QtCore import QThread, pyqtSignal
|
|
|
|
|
|
class CameraScanThread(QThread):
|
|
scan_finished = pyqtSignal(list, dict)
|
|
|
|
def __init__(self, detector, max_to_check=10, parent=None):
|
|
super().__init__(parent)
|
|
self.detector = detector
|
|
self.max_to_check = max_to_check
|
|
|
|
def run(self):
|
|
try:
|
|
cams = self.detector.scan_for_cameras(self.max_to_check)
|
|
names = {}
|
|
if sys.platform.startswith('win'):
|
|
try:
|
|
names = self.detector.get_camera_names_windows(cams)
|
|
except Exception as e:
|
|
print(f"Failed to get Windows camera names: {e}")
|
|
names = {}
|
|
self.scan_finished.emit(cams, names)
|
|
except Exception as e:
|
|
print(f"CameraScanThread error: {e}")
|
|
self.scan_finished.emit([], {}) |