Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

test.bas

Uploader:MitgliedThePuppetMaster
Datum/Zeit:24.12.2023 01:08:08
Hinweis: Dieser Quelltext ist Bestandteil des Projekts LOUPEDECK-Live Linux Treiber, zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.

'####################################################################################################################################################################################################################################
Dim Shared G_PosX as Integer
Open Cons for Output as #1


'####################################################################################################################################################################################################################################
#Include Once "../../timage/timage.bi"
#Include Once "loupedeck.bi"



'####################################################################################################################################################################################################################################
Dim Shared G_ColorR as UByte
Dim Shared G_ColorG as UByte
Dim Shared G_ColorB as UByte
Dim Shared G_ImgBtn as TImage Ptr
Dim Shared G_ImgBar as TImage Ptr
Dim Shared G_Font as TImage Ptr



'####################################################################################################################################################################################################################################
Sub Loupedeck_Callback(V_LDID as UInteger, V_Event as Loupedeck_Event_Type, V_Element as Loupedeck_Element_Type, V_ElementID as UByte, V_PushForce as UByte, V_X as UShort, V_Y as UShort, V_Section as UByte)
Print "ID:" & V_LDID & "   EVENT:" & V_Event & "   ELEMENT:" & V_Element & "   ELEMENT-ID:" & V_ElementID & "   FORCE:" & V_PushForce & "   X:" & V_X & "   Y:" & V_Y & "   S:" & V_Section
Dim TVal as UByte
Select Case V_Event
    Case LDET_Down
        Select Case V_ElementID
            Case 0:
                Select Case V_Section
                    Case 1, 2
                        G_ImgBar->CLS(&H000000)
                        G_ImgBar->Line(0, CInt(V_Y), 60, 270, &HFFFFFF, 1, 1)
                        Loupedeck_INT_DrawTImageToFBSection(V_LDID, V_Section, G_ImgBar)
                        Loupedeck_Flip(V_LDID)
                    Case 3 to 14
                        Loupedeck_VibrationSet(V_LDID, &H32)
                        G_ImgBtn->CLS(&HFF0000)
                        G_ImgBtn->DrawString(G_Font, "Test-" & Str(V_Section), 10, 10, &H000000, 1)
                        Loupedeck_INT_DrawTImageToFBSection(V_LDID, V_Section, G_ImgBtn)
                        Loupedeck_Flip(V_LDID)
                End Select

            Case 7: Loupedeck_VibrationSet(V_LDID, &H70)
            Case 8: Loupedeck_ButtonColorSet(V_LDID, 8, &HFF0000)
'           Case 9: Loupedeck_Draw(V_LDID)
'           Case 10: Loupedeck_Flip(V_LDID)
        End Select

    Case LDET_Up
        Select Case V_ElementID
            Case 0:
                Select Case V_Section
                    Case 1
                    Case 2
                    Case 3 to 14
                        G_ImgBtn->CLS(&H00FF00)
                        G_ImgBtn->DrawString(G_Font, "Test-" & Str(V_Section), 10, 10, &H000000, 1)
                        Loupedeck_INT_DrawTImageToFBSection(V_LDID, V_Section, G_ImgBtn)
                        Loupedeck_Flip(V_LDID)
                End Select
        End Select

    Case LDET_CW
        Select Case V_ElementID
            Case 1: TVal = G_ColorR
            Case 2: TVal = G_ColorG
            Case 3: TVal = G_ColorB
'           Case 4: G_PosX += 1: Loupedeck_Draw(V_LDID): Loupedeck_Flip(V_LDID)
        End Select
        If TVal < 255 - 1 Then TVal += 1 Else TVal = 255
        Select Case V_ElementID
            Case 1: G_ColorR = TVal
            Case 2: G_ColorG = TVal
            Case 3: G_ColorB = TVal
        End Select
        Select Case V_ElementID
            Case 1 to 3
'               Loupedeck_ButtonColorSet(V_LDID, 8, RGB(G_ColorR, G_ColorG, G_ColorB))
'               Loupedeck_DisplayBrightnessSet(V_LDID, G_ColorR)
        End Select

    Case LDET_CCW
        Select Case V_ElementID
            Case 1: TVal = G_ColorR
            Case 2: TVal = G_ColorG
            Case 3: TVal = G_ColorB
'           Case 4: If G_PosX > 0 Then G_PosX -= 1: Loupedeck_Draw(V_LDID): Loupedeck_Flip(V_LDID)
        End Select
        If TVal > 1 Then TVal -= 1 Else TVal = 0
        Select Case V_ElementID
            Case 1: G_ColorR = TVal
            Case 2: G_ColorG = TVal
            Case 3: G_ColorB = TVal
        End Select
        Select Case V_ElementID
            Case 1 to 3
'               Loupedeck_ButtonColorSet(V_LDID, 8, RGB(G_ColorR, G_ColorG, G_ColorB))
'               Loupedeck_DisplayBrightnessSet(V_LDID, G_ColorR)
        End Select
End Select
End Sub



'####################################################################################################################################################################################################################################
Dim TLDID as UInteger
Dim TDevicePath as String = "/dev/ttyACM0"

G_Font = TLoadFontDynamicspaceFromFile("font12.bmp")


Print #1, "Connecting..."
Dim TRV as Loupedeck_GURU = Loupedeck_Connect(TDevicePath, TLDID)
If TRV <> LDG_NoError Then Print "Error:" & Loupedeck_GetGURUDesc(TRV): End -1
Print #1, "Connected!"



'Dim TImg as TImage Ptr = TImageCreate(60, 266)
G_ImgBar = TImageCreate(60, 270)
G_ImgBtn = TImageCreate(90, 90)
For X as Integer = 3 to 14
    G_ImgBtn->CLS(RGB(0, 255, 0))
    G_ImgBtn->DrawString(G_Font, "Test-" & Str(X), 10, 10, &H000000, 1)
    Print #1, "ICK:" & G_ImgBtn
    Loupedeck_INT_DrawTImageToFBSection(TLDID, X, G_ImgBtn)
Next
Print #1, "Flip"
Loupedeck_Flip(TLDID)
Print #1, "OK"



Loupedeck_SetCallback(TLDID, @Loupedeck_Callback)


Do Until InKey() = Chr(27)
    TRV = Loupedeck_Checkup(TLDID)
    If TRV <> LDG_NoError Then Print "Error:" & Loupedeck_GetGURUDesc(TRV): End -1
    Sleep 10, 1
Loop


TRV = Loupedeck_Close(TLDID)
If TRV <> LDG_NoError Then Print "Error:" & Loupedeck_GetGURUDesc(TRV): End -1


End 0