#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
GUICreate('5 Aufnahme-Timer', 800, 700, Default, Default, 0x10C80000)
Dim $end, $end2, $timer, $timer2, $running = False, $running2 = False, $input[3], $input2[3], $input3[3], $input4[3], $input5[3], $name[3]=['Stunden','Minuten','Sekunden'], $name2[3]=['','',''], $name3[3]=['','',''], $name4[3]=['','',''], $name5[3]=['','',''], $button[2]=['Start','Stop']
For $i=0 To 2
	GUICtrlCreateGroup($name[$i], 5+70*$i, 5, 70, 40)
	GUICtrlCreateGroup($name2[$i], 5+70*$i, 35, 70, 40)
	GUICtrlCreateGroup($name3[$i], 5+70*$i, 65, 70, 40)
	GUICtrlCreateGroup($name4[$i], 5+70*$i, 95, 70, 40)
	GUICtrlCreateGroup($name5[$i], 5+70*$i, 125, 70, 40)
$input[$i]=GUICtrlCreateInput('', 10+70*$i, 20, 60, 20, 1)
$input2[$i]=GUICtrlCreateInput('', 10+70*$i, 50, 60, 20, 1)
$input3[$i]=GUICtrlCreateInput('', 10+70*$i, 80, 60, 20, 1)
$input4[$i]=GUICtrlCreateInput('', 10+70*$i, 110, 60, 20, 1)
$input5[$i]=GUICtrlCreateInput('', 10+70*$i, 140, 60, 20, 1)
Next
$go=GUICtrlCreateButton('Start', 550, 650, 210, 20)
$Herunterfahren = GUICtrlCreateCheckbox("Computer herunterfahren", 600, 600, 201, 25)
$Input2 = GUICtrlCreateCheckbox("Aufnahme 2 Aktivieren", 220, 47, 201, 25)
$Input3 = GUICtrlCreateCheckbox("Aufnahme 3 Aktivieren", 220, 77, 201, 25)
$Input4 = GUICtrlCreateCheckbox("Aufnahme 4 Aktivieren", 220, 107, 201, 25)
$Input5 = GUICtrlCreateCheckbox("Aufnahme 5 Aktivieren", 220, 137, 201, 25)
$Close = GUICtrlCreateButton("Schließen", 550, 550, 83, 25)
$Label2 = GUICtrlCreateLabel("Programm Start mit Hotkey F7", 500, 500, 170, 24)
GUICtrlSetFont(-1, 6, 800, 0, "MS Sans Serif")




;HotKey's
HotKeySet ("{F7}", "StartTimer")

;##############################
;Start mit der ersten Aufnahme#
;##############################

;Funktion das mit der Taste F7 gestartet wird

Func StartTimer()
HotKeySet ("{F7}")



			$running = Not $running
			GUICtrlSetData($go, $button[$running])
			$end = Convert($input)
			$timer=TimerInit()

			If $running And TimerDiff($timer)>=$end Then
				$running = False
				GUICtrlSetData($go, $button[$running])
				Send ("{F8}")
				;;;;;
				If _IsChecked($Input2) Then
				Call ("ANAufnahem2")
			    Else
				Call ("AUSAufnahem2")
               EndIf



			 EndIf




EndFunc




;Funktion mit Knöpfen (Knopf Start) ist hier mit enthalten und Schließen
While 1
	Switch GUIGetMsg()

		 Case $Close
			Exit

		Case -3
			Exit
		Case $go
			$running = Not $running
			GUICtrlSetData($go, $button[$running])
			$end = Convert($input)
			$timer=TimerInit()
		Case Else
		If $running And TimerDiff($timer)>=$end Then
				$running = False
				GUICtrlSetData($go, $button[$running])
				ControlSend("OBS 26.1.1 (64-bit, windows) - Profil: Unbenannt - Szenen: Unbenannt", "", "", "{F8}")
				Send ("{F8}")
				;;;;;
				If _IsChecked($Input2) Then
				Call ("ANAufnahem2")
			    Else
				Call ("AUSAufnahem2")
               EndIf


			 EndIf



  EndSwitch

 WEnd


Func Convert($array)
	Return 1000*(60*(60*(GUICtrlRead($array[0]))+GUICtrlRead($array[1]))+GUICtrlRead($array[2]))
 EndFunc

 Func _IsChecked($Herunterfahren)
    Return BitAND(GUICtrlRead($Herunterfahren), $GUI_CHECKED) = $GUI_CHECKED
 EndFunc


;######################
;Aufnahme 1 endet hier#
;######################


Func ANAufnahem2 ()

 Sleep (3000) ;Puffer um abzuspeichern



While 2
	Switch GUIGetMsg()


		 Case $Close
			Exit

		Case -3
			Exit
		Case $go
			$running2 = Not $running2
			GUICtrlSetData($go, $button [$running2])
			$end = Convert($input2)
			$timer2=TimerInit()
		 Case Else
		If $running2 And TimerDiff($timer2)>=$end2 Then
		   $running2 = False
				GUICtrlSetData($go, $button[$running2])
				ControlSend("OBS 26.1.1 (64-bit, windows) - Profil: Unbenannt - Szenen: Unbenannt", "", "", "{F8}")
				Send ("{F8}")
				;;;;;
				If _IsChecked($Input3) Then
				Call ("AN")
			    Else
				Call ("AUS")
			   MsgBox(0, 'Info', 'Tesssssssst 2 durch an?')
               EndIf


			 EndIf


EndSwitch
WEnd

 EndFunc

Func AUSAufnahem2 ()
   ControlSend("OBS 26.1.1 (64-bit, windows) - Profil: Unbenannt - Szenen: Unbenannt", "", "", "{F8}")
   Sleep (1000)
   MsgBox(0, 'Info', '2 durch AUS')
   EndFunc


;##################################################################################################
;Hier wird nochmal abgefragt und entschieden ob der Harken bei Herrunterfahren drin ist oder nicht#
;##################################################################################################

Func AN ()
   ControlSend("OBS 26.1.1 (64-bit, windows) - Profil: Unbenannt - Szenen: Unbenannt", "", "", "{F8}")
   Sleep (1000)
   MsgBox(0, 'Info', 'ANNNNNNNNNNNNNNNNNNNNNNNNNNN')
;   Shutdown(1)
   EndFunc

Func AUS ()
   ControlSend("OBS 26.1.1 (64-bit, windows) - Profil: Unbenannt - Szenen: Unbenannt", "", "", "{F8}")
   Sleep (1000)
   MsgBox(0, 'Info', 'Aufnahme gestoppt')
EndFunc

