@@ -73,42 +73,40 @@ type camera struct {
73
73
74
74
func init () {
75
75
discovered := make (map [string ]struct {})
76
+ discover (discovered , "/dev/v4l/by-path/*" )
77
+ discover (discovered , "/dev/video*" )
78
+ }
76
79
77
- discover := func (pattern string ) {
78
- devices , err := filepath .Glob (pattern )
80
+ func discover (discovered map [string ]struct {}, pattern string ) {
81
+ devices , err := filepath .Glob (pattern )
82
+ if err != nil {
83
+ // No v4l device.
84
+ return
85
+ }
86
+ for _ , device := range devices {
87
+ label := filepath .Base (device )
88
+ reallink , err := os .Readlink (device )
79
89
if err != nil {
80
- // No v4l device.
81
- return
90
+ reallink = label
91
+ } else {
92
+ reallink = filepath .Base (reallink )
93
+ }
94
+ if _ , ok := discovered [reallink ]; ok {
95
+ continue
82
96
}
83
- for _ , device := range devices {
84
- label := filepath .Base (device )
85
- reallink , err := os .Readlink (device )
86
- if err != nil {
87
- reallink = label
88
- } else {
89
- reallink = filepath .Base (reallink )
90
- }
91
-
92
- if _ , ok := discovered [reallink ]; ok {
93
- continue
94
- }
95
97
96
- discovered [reallink ] = struct {}{}
97
- cam := newCamera (device )
98
- priority := driver .PriorityNormal
99
- if reallink == prioritizedDevice {
100
- priority = driver .PriorityHigh
101
- }
102
- driver .GetManager ().Register (cam , driver.Info {
103
- Label : label + LabelSeparator + reallink ,
104
- DeviceType : driver .Camera ,
105
- Priority : priority ,
106
- })
98
+ discovered [reallink ] = struct {}{}
99
+ cam := newCamera (device )
100
+ priority := driver .PriorityNormal
101
+ if reallink == prioritizedDevice {
102
+ priority = driver .PriorityHigh
107
103
}
104
+ driver .GetManager ().Register (cam , driver.Info {
105
+ Label : label + LabelSeparator + reallink ,
106
+ DeviceType : driver .Camera ,
107
+ Priority : priority ,
108
+ })
108
109
}
109
-
110
- discover ("/dev/v4l/by-path/*" )
111
- discover ("/dev/video*" )
112
110
}
113
111
114
112
func newCamera (path string ) * camera {
0 commit comments