126 lines
1.9 KiB
Text
126 lines
1.9 KiB
Text
' Gambas class file
|
|
|
|
'
|
|
' WebCam
|
|
' Demo program to show off the Gambas V4L module
|
|
' (c) Gareth Bult, Encryptec Ltd 2009
|
|
'
|
|
' License: as-is
|
|
'
|
|
Private $windows As Form[]
|
|
|
|
Public Sub ScanDevices()
|
|
|
|
Dim i As Integer
|
|
Dim dev As VideoDevice
|
|
Dim myWin As Form
|
|
Dim count As Integer
|
|
Dim item As Menu
|
|
Dim status As String
|
|
Dim sDevice As String
|
|
|
|
$windows = New Form[]
|
|
count = 0
|
|
Me.Show
|
|
|
|
status = ("Searching:") & " "
|
|
For i = 0 To 20
|
|
sDevice = "/dev/video" & Str(i)
|
|
Print sDevice
|
|
Try dev = New VideoDevice(sDevice)
|
|
If Not Error Then
|
|
status &= "!"
|
|
myWin = New FDevice(dev, count)
|
|
$windows.Add(myWin)
|
|
item = New Menu(tooltray_popup) As "Camera"
|
|
item.Text = dev.Card
|
|
item.Picture = Picture["icon:/16/camera"]
|
|
item.Tag = i
|
|
count += 1
|
|
Else
|
|
status &= "."
|
|
Endif
|
|
Wait 0.1
|
|
text_status.Text = status
|
|
Next
|
|
text_status.Text = ("Found") & " (" & Str($windows.Count) & ") " & ("devices")
|
|
Wait 2
|
|
Me.Hide
|
|
|
|
For Each myWin In $windows
|
|
myWin.Show
|
|
Next
|
|
|
|
End
|
|
|
|
Public Sub menu_scan_Click()
|
|
|
|
Dim item As Menu
|
|
Dim items As Menu[]
|
|
|
|
While $windows.Count > 0
|
|
$windows.Pop().Close
|
|
Wend
|
|
$windows.Clear
|
|
|
|
items = New Menu[]
|
|
For Each item In tooltray_popup.Children
|
|
If item.Tag <> "X"
|
|
items.Add(item)
|
|
Endif
|
|
Next
|
|
|
|
For Each item In items
|
|
item.Delete
|
|
Next
|
|
|
|
ScanDevices()
|
|
|
|
End
|
|
|
|
Public Sub Camera_Click()
|
|
|
|
$windows[Last.Tag].Show
|
|
$windows[Last.Tag].SetFocus
|
|
|
|
End
|
|
|
|
Public Sub tooltray_Menu()
|
|
|
|
tooltray_popup.Popup
|
|
|
|
End
|
|
|
|
Public Sub menu_quit_Click()
|
|
|
|
While $windows.Count > 0
|
|
$windows.Pop().Close
|
|
Wend
|
|
Me.Close
|
|
'tooltray.Hide
|
|
|
|
End
|
|
|
|
Public Sub menu_save_Click()
|
|
|
|
Dim mywin As FDevice
|
|
|
|
For Each myWin In $windows
|
|
myWin.Save()
|
|
Next
|
|
Settings.Save
|
|
Message(("Settings Saved!"))
|
|
|
|
End
|
|
|
|
Public Sub Form_Open()
|
|
|
|
Me.Center
|
|
|
|
End
|
|
|
|
Public Sub Form_Activate()
|
|
|
|
If Not $windows Then ScanDevices
|
|
|
|
End
|