From 85597da5bb4aa7c176bea1ea33d0c4047a101d74 Mon Sep 17 00:00:00 2001 From: Clyde Bazile <34226620+bazile-clyde@users.noreply.github.com> Date: Fri, 13 Jan 2023 19:02:46 -0500 Subject: [PATCH] Expose device list update func (#463) --- pkg/driver/camera/camera_darwin.go | 5 +++++ pkg/driver/camera/camera_linux.go | 5 +++++ pkg/driver/camera/camera_windows.go | 5 +++++ pkg/driver/microphone/microphone.go | 5 +++++ pkg/driver/screen/screen.go | 5 +++++ pkg/driver/screen/x11_linux.go | 5 +++++ 6 files changed, 30 insertions(+) diff --git a/pkg/driver/camera/camera_darwin.go b/pkg/driver/camera/camera_darwin.go index 3db1537..bf0d6b2 100644 --- a/pkg/driver/camera/camera_darwin.go +++ b/pkg/driver/camera/camera_darwin.go @@ -17,6 +17,11 @@ type camera struct { } func init() { + Initialize() +} + +// Initialize finds and registers camera devices. This is part of an experimental API. +func Initialize() { devices, err := avfoundation.Devices(avfoundation.Video) if err != nil { panic(err) diff --git a/pkg/driver/camera/camera_linux.go b/pkg/driver/camera/camera_linux.go index a7b2dd5..67307b3 100644 --- a/pkg/driver/camera/camera_linux.go +++ b/pkg/driver/camera/camera_linux.go @@ -73,6 +73,11 @@ type camera struct { } func init() { + Initialize() +} + +// Initialize finds and registers camera devices. This is part of an experimental API. +func Initialize() { discovered := make(map[string]struct{}) discover(discovered, "/dev/v4l/by-path/*") discover(discovered, "/dev/video*") diff --git a/pkg/driver/camera/camera_windows.go b/pkg/driver/camera/camera_windows.go index 3596957..c8d9a43 100644 --- a/pkg/driver/camera/camera_windows.go +++ b/pkg/driver/camera/camera_windows.go @@ -32,6 +32,11 @@ type camera struct { } func init() { + Initialize() +} + +// Initialize finds and registers camera devices. This is part of an experimental API. +func Initialize() { C.CoInitializeEx(nil, C.COINIT_MULTITHREADED) var list C.cameraList diff --git a/pkg/driver/microphone/microphone.go b/pkg/driver/microphone/microphone.go index 2c04997..9ee7e9c 100644 --- a/pkg/driver/microphone/microphone.go +++ b/pkg/driver/microphone/microphone.go @@ -39,6 +39,11 @@ type microphone struct { } func init() { + Initialize() +} + +// Initialize finds and registers active playback or capture devices. This is part of an experimental API. +func Initialize() { var err error ctx, err = malgo.InitContext(nil, malgo.ContextConfig{}, func(message string) { logger.Debugf("%v\n", message) diff --git a/pkg/driver/screen/screen.go b/pkg/driver/screen/screen.go index 1353330..a854836 100644 --- a/pkg/driver/screen/screen.go +++ b/pkg/driver/screen/screen.go @@ -20,6 +20,11 @@ type screen struct { } func init() { + Initialize() +} + +// Initialize finds and registers active displays. This is part of an experimental API. +func Initialize() { activeDisplays := screenshot.NumActiveDisplays() for i := 0; i < activeDisplays; i++ { priority := driver.PriorityNormal diff --git a/pkg/driver/screen/x11_linux.go b/pkg/driver/screen/x11_linux.go index 726aa31..7a0aa6a 100644 --- a/pkg/driver/screen/x11_linux.go +++ b/pkg/driver/screen/x11_linux.go @@ -22,6 +22,11 @@ func deviceID(num int) string { } func init() { + Initialize() +} + +// Initialize finds and registers active displays. This is part of an experimental API. +func Initialize() { dp, err := openDisplay() if err != nil { // No x11 display available.