Sub Process_Globals
Dim cm As JavaObject
Dim cameraId As String
Dim timerPwm As Timer
Dim pwmDutyCycle As Int ' 0 a 100 %
Dim pwmCounter As Int
End Sub
Sub Globals
Dim seekBar1 As SeekBar
Dim btnStart As Button
Dim btnStop As Button
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout1") ' Con seekBar1, btnStart, btnStop
cm = JavaObject.InitializeContext.RunMethod("getSystemService", Array("camera"))
Dim cameraIdList As JavaObject = cm.RunMethod("getCameraIdList", Null)
cameraId = cameraIdList.RunMethod("get", Array(0))
timerPwm.Initialize("timerPwm", 50) ' 50ms ciclo timer
seekBar1.Max = 100
seekBar1.Progress = 100 ' brillo máximo por defecto
pwmDutyCycle = 100
pwmCounter = 0
btnStart.Enabled = True
btnStop.Enabled = False
End Sub
Sub seekBar1_ProgressChanged (Value As Int, UserChanged As Boolean)
pwmDutyCycle = Value ' Actualiza el ciclo de trabajo
End Sub
Sub btnStart_Click
timerPwm.Enabled = True
btnStart.Enabled = False
btnStop.Enabled = True
End Sub
Sub btnStop_Click
timerPwm.Enabled = False
TurnOffFlash()
btnStart.Enabled = True
btnStop.Enabled = False
End Sub
Sub timerPwm_Tick
pwmCounter = (pwmCounter + 10) Mod 100
If pwmCounter < pwmDutyCycle Then
TurnOnFlash()
Else
TurnOffFlash()
End If
End Sub
Sub TurnOnFlash
cm.RunMethod("setTorchMode", Array(cameraId, True))
End Sub
Sub TurnOffFlash
cm.RunMethod("setTorchMode", Array(cameraId, False))
End Sub