Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'To do:
- 'Fix desyncs, make a marker for nodes and for master chip
- 'Create Playlist with hold at end and play time length (overall for that transistion to automake a send time)
- 'TicTacToe
- 'Make up premade symbols like a heart or a stop symbol for library.
- 'Tooltips?
- 'Figure out how to select rows in program, as to keep the highlight on the data moved, not the index of the row.
- 'change row color clearing to a for statement for all rows.
- 'add 'load and run' button under file selection to immediately start playing animation.
- Imports System.Threading
- Public Class MultiLight
- Dim SerialList As String() = System.IO.Ports.SerialPort.GetPortNames()
- Dim port As String
- Dim counter As Integer = 1
- Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Black, 1)
- Dim PB(192) As System.Windows.Forms.PictureBox
- Dim PBpic(192) As Drawing.Bitmap
- Dim temppic As New Drawing.Bitmap(15, 15)
- Dim GFX(192) As System.Drawing.Graphics
- Dim CS As New BitArray(58176) 'Chip Scenes (576 * 101 = 58176)
- Dim programset As Boolean
- Dim Directory As String = System.IO.Directory.GetCurrentDirectory
- Dim filelist As String() = System.IO.Directory.GetFiles(System.IO.Directory.GetCurrentDirectory, "*.mlf")
- Dim Mainsetupfile As String
- Dim MouseTraxActive As Boolean
- Dim MousedownPB As Boolean
- Dim textshift As Integer
- Dim Playlist As Boolean
- Dim SelectedFile As String
- Dim Playlistcount As Integer
- 'First Load
- Private Sub MultiLight_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- SerialPort1.Dispose()
- SerialPort1.Close()
- SerialPort1.BaudRate = 9600
- SerialPort1.Parity = IO.Ports.Parity.None
- SerialPort1.DataBits = 8
- SerialPort1.StopBits = 1
- SerialPort1.Handshake = IO.Ports.Handshake.None
- SerialPort1.PortName = "COMNULL"
- For Each Me.port In SerialList
- ComboBox1.Items.Add(port)
- Next port
- ComboBox1.Items.Add("TEST")
- Call ControlInit()
- For i = 0 To CS.Length - 1
- CS(i) = False
- Next
- For Each file As String In filelist
- ListBox1.Items.Add(file.Substring(Directory.Length + 1))
- Next
- programset = True
- End Sub
- 'Setup PBs
- Private Sub ControlInit()
- Dim point As Drawing.Point
- Dim Startpoint As Drawing.Point
- Dim drawFont As New Font("Arial", 6)
- point.X = 0
- point.Y = 0
- 'Chip 1
- For i = 0 To 191
- Me.PB(i) = New System.Windows.Forms.PictureBox
- Me.PB(i).Enabled = True
- Me.PB(i).Name = "PB" & i
- Me.PB(i).Size = New System.Drawing.Size(15, 15)
- Me.PB(i).Visible = True
- Me.PB(i).BackColor = Color.Black
- Me.PB(i).Parent = GroupBox1
- 'Left Face
- If i >= 0 Then
- Startpoint.X = 30
- Startpoint.Y = 100
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (i * 16), Startpoint.Y)
- End If
- If i >= 8 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + ((i - 8) * 16), Startpoint.Y + 16)
- End If
- If i >= 16 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + ((i - 16) * 16), Startpoint.Y + 32)
- End If
- If i >= 24 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + ((i - 24) * 16), Startpoint.Y + 48)
- End If
- If i >= 32 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + ((i - 32) * 16), Startpoint.Y + 64)
- End If
- If i >= 40 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + ((i - 40) * 16), Startpoint.Y + 80)
- End If
- If i >= 48 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + ((i - 48) * 16), Startpoint.Y + 96)
- End If
- If i >= 56 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + ((i - 56) * 16), Startpoint.Y + 112)
- End If
- 'Left Face
- If i >= 64 Then
- Startpoint.X = 170
- Startpoint.Y = 100
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + ((i - 64) * 16), Startpoint.Y)
- End If
- If i >= 72 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 64) - 8) * 16), Startpoint.Y + 16)
- End If
- If i >= 80 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 64) - 16) * 16), Startpoint.Y + 32)
- End If
- If i >= 88 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 64) - 24) * 16), Startpoint.Y + 48)
- End If
- If i >= 96 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 64) - 32) * 16), Startpoint.Y + 64)
- End If
- If i >= 104 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 64) - 40) * 16), Startpoint.Y + 80)
- End If
- If i >= 112 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 64) - 48) * 16), Startpoint.Y + 96)
- End If
- If i >= 120 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 64) - 56) * 16), Startpoint.Y + 112)
- End If
- 'Bottom Face
- If i >= 128 Then
- Startpoint.X = 170
- Startpoint.Y = 240
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + ((i - 128) * 16), Startpoint.Y)
- End If
- If i >= 136 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 128) - 8) * 16), Startpoint.Y + 16)
- End If
- If i >= 144 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 128) - 16) * 16), Startpoint.Y + 32)
- End If
- If i >= 152 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 128) - 24) * 16), Startpoint.Y + 48)
- End If
- If i >= 160 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 128) - 32) * 16), Startpoint.Y + 64)
- End If
- If i >= 168 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 128) - 40) * 16), Startpoint.Y + 80)
- End If
- If i >= 176 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 128) - 48) * 16), Startpoint.Y + 96)
- End If
- If i >= 184 Then
- Me.PB(i).Location = New System.Drawing.Point(Startpoint.X + (((i - 128) - 56) * 16), Startpoint.Y + 112)
- End If
- Me.Controls.Add(PB(i))
- AddHandler PB(i).MouseDown, AddressOf PicClickHandler
- AddHandler PB(i).MouseEnter, AddressOf PBEnter
- AddHandler PB(i).MouseLeave, AddressOf PBExit
- Next
- For i = 0 To 191
- PBpic(i) = New Drawing.Bitmap(15, 15)
- GFX(i) = System.Drawing.Graphics.FromImage(PBpic(i))
- GFX(i).FillRectangle(Brushes.Black, 0, 0, 15, 15)
- GFX(i).DrawString(i.ToString, drawFont, Brushes.White, point)
- PB(i).Image = PBpic(i)
- Next
- End Sub
- 'PB Clicked
- Private Sub PicClickHandler(ByVal Sender As Object, ByVal e As System.EventArgs)
- PB(0).Focus()
- Dim senderPicBox As PictureBox = CType(Sender, PictureBox)
- Dim index As Integer
- Dim picindex As Integer
- Dim pointervalue As Integer
- pointervalue = (NumericUpDown2.Value * 576)
- index = (System.Array.IndexOf(PB, Sender)) * 3
- picindex = (System.Array.IndexOf(PB, Sender))
- ' CS(index + 0) = Red
- ' CS(index + 1) = Green
- ' CS(index + 2) = Blue
- 'Is Black, make Red
- If RadioButton1.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Red, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = True
- CS(pointervalue + index + 1) = False
- CS(pointervalue + index + 2) = False
- Return
- End If
- 'Is Red, make Green
- If RadioButton2.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.LimeGreen, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = False
- CS(pointervalue + index + 1) = True
- CS(pointervalue + index + 2) = False
- Return
- End If
- 'Is Green, make Blue
- If RadioButton3.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Blue, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = False
- CS(pointervalue + index + 1) = False
- CS(pointervalue + index + 2) = True
- Return
- End If
- 'Is Blue, make Teal
- If RadioButton4.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Aquamarine, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = False
- CS(pointervalue + index + 1) = True
- CS(pointervalue + index + 2) = True
- Return
- End If
- 'Is Teal, make Pink
- If RadioButton5.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Pink, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = True
- CS(pointervalue + index + 1) = False
- CS(pointervalue + index + 2) = True
- Return
- End If
- 'Is Pink, make Yellow
- If RadioButton6.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Yellow, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = True
- CS(pointervalue + index + 1) = True
- CS(pointervalue + index + 2) = False
- Return
- End If
- 'Is Yellow, make White
- If RadioButton7.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.White, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = True
- CS(pointervalue + index + 1) = True
- CS(pointervalue + index + 2) = True
- Return
- End If
- 'Is White, make Black
- If RadioButton8.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Black, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = False
- CS(pointervalue + index + 1) = False
- CS(pointervalue + index + 2) = False
- Return
- End If
- End Sub
- 'Start/Stop Button
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- If SerialPort1.IsOpen = True Or ComboBox1.Text = "TEST" Then
- If Timer2.Enabled = True Then
- Try
- DGV.Rows(Playlistcount - 1).DefaultCellStyle.BackColor = Color.White
- Catch ex As Exception
- End Try
- Timer2.Enabled = False
- Button1.Text = "Start"
- NumericUpDown2.Enabled = True
- NumericUpDown3.Enabled = True
- ComboBox1.Enabled = True
- Button17.Enabled = True
- Playlist = False
- Else
- counter = 1
- Timer2.Interval = NumericUpDown25.Value
- Button1.Text = "Stop"
- Timer2.Enabled = True
- NumericUpDown2.Value = 1
- NumericUpDown2.Enabled = False
- NumericUpDown3.Enabled = False
- ComboBox1.Enabled = False
- Button17.Enabled = False
- Playlist = False
- End If
- End If
- End Sub
- 'Send
- Private Sub send()
- Dim CB(84) As Byte 'Compiled Bytes (4bytes per chip, most is 20 chips, 20 * 4 = 80
- Dim pointer As Integer
- pointer = counter * 576
- Dim subcount As Integer = 0
- NumericUpDown2.Value = counter
- Do Until subcount >= 79
- If subcount <> 64 And subcount <> 72 Then
- Dim mData_Out1() As Boolean = {CS(pointer + 7), CS(pointer + 6), CS(pointer + 5), CS(pointer + 4), CS(pointer + 3), CS(pointer + 2), CS(pointer + 1), CS(pointer + 0)}
- For Each b As Boolean In mData_Out1
- CB(subcount) = CByte(CB(subcount) << 1) 'shift
- If b Then CB(subcount) = CByte(CB(subcount) Or 1) 'or if true
- Next
- pointer = pointer + 8
- Dim mData_Out2() As Boolean = {CS(pointer + 7), CS(pointer + 6), CS(pointer + 5), CS(pointer + 4), CS(pointer + 3), CS(pointer + 2), CS(pointer + 1), CS(pointer + 0)}
- For Each b As Boolean In mData_Out2
- CB(subcount + 1) = CByte(CB(subcount + 1) << 1) 'shift
- If b Then CB(subcount + 1) = CByte(CB(subcount + 1) Or 1) 'or if true
- Next
- pointer = pointer + 8
- Dim mData_Out3() As Boolean = {CS(pointer + 7), CS(pointer + 6), CS(pointer + 5), CS(pointer + 4), CS(pointer + 3), CS(pointer + 2), CS(pointer + 1), CS(pointer + 0)}
- For Each b As Boolean In mData_Out3
- CB(subcount + 2) = CByte(CB(subcount + 2) << 1) 'shift
- If b Then CB(subcount + 2) = CByte(CB(subcount + 2) Or 1) 'or if true
- Next
- pointer = pointer + 8
- Dim mData_Out4() As Boolean = {CS(pointer + 7), CS(pointer + 6), CS(pointer + 5), CS(pointer + 4), CS(pointer + 3), CS(pointer + 2), CS(pointer + 1), CS(pointer + 0)}
- For Each b As Boolean In mData_Out4
- CB(subcount + 3) = CByte(CB(subcount + 3) << 1) 'shift
- If b Then CB(subcount + 3) = CByte(CB(subcount + 3) Or 1) 'or if true
- Next
- 'CORRECTIONS
- Else
- 'For set 64 (Node 16) 7-8
- If subcount = 64 Then
- Dim mData_Out1() As Boolean = {CS(pointer + 7), CS(pointer + 6), CS(pointer + 5), CS(pointer + 4), CS(pointer + 3), CS(pointer + 2), CS(pointer + 1), CS(pointer + 0)}
- For Each b As Boolean In mData_Out1
- CB(subcount) = CByte(CB(subcount) << 1) 'shift
- If b Then CB(subcount) = CByte(CB(subcount) Or 1) 'or if true
- Next
- pointer = pointer + 8
- Dim mData_Out2() As Boolean = {CS(pointer + 7), CS(pointer + 6), CS(pointer + 5), CS(pointer + 4), CS(pointer + 3), CS(pointer + 2), CS(pointer + 1), CS(pointer + 0)}
- For Each b As Boolean In mData_Out2
- CB(subcount + 1) = CByte(CB(subcount + 1) << 1) 'shift
- If b Then CB(subcount + 1) = CByte(CB(subcount + 1) Or 1) 'or if true
- Next
- pointer = pointer + 8
- Dim mData_Out3() As Boolean = {CS(pointer + 7), CS(pointer + 6), CS(pointer + 5), CS(pointer + 4), CS(pointer + 3), CS(pointer + 2), CS(pointer + 1), CS(pointer + 0)}
- For Each b As Boolean In mData_Out3
- CB(subcount + 2) = CByte(CB(subcount + 2) << 1) 'shift
- If b Then CB(subcount + 2) = CByte(CB(subcount + 2) Or 1) 'or if true
- Next
- pointer = pointer + 8
- Dim mData_Out4() As Boolean = {CS(pointer + 7), CS(pointer + 6), CS(pointer + 2), CS(pointer + 1), CS(pointer + 0), CS(pointer + 5), CS(pointer + 4), CS(pointer + 3)}
- For Each b As Boolean In mData_Out4
- CB(subcount + 3) = CByte(CB(subcount + 3) << 1) 'shift
- If b Then CB(subcount + 3) = CByte(CB(subcount + 3) Or 1) 'or if true
- Next
- 'For set 72 (Node 18) 2-4 1-5
- Else
- Dim mData_Out1() As Boolean = {CS(pointer + 7), CS(pointer + 6), CS(pointer + 8 + 3), CS(pointer + 8 + 2), CS(pointer + 8 + 1), CS(pointer + 8 + 6), CS(pointer + 8 + 5), CS(pointer + 8 + 4)}
- For Each b As Boolean In mData_Out1
- CB(subcount) = CByte(CB(subcount) << 1) 'shift
- If b Then CB(subcount) = CByte(CB(subcount) Or 1) 'or if true
- Next
- pointer = pointer + 8
- Dim mData_Out2() As Boolean = {CS(pointer + 7), CS(pointer - 8 + 2), CS(pointer - 8 + 1), CS(pointer - 8 + 0), CS(pointer - 8 + 5), CS(pointer - 8 + 4), CS(pointer - 8 + 3), CS(pointer + 0)}
- For Each b As Boolean In mData_Out2
- CB(subcount + 1) = CByte(CB(subcount + 1) << 1) 'shift
- If b Then CB(subcount + 1) = CByte(CB(subcount + 1) Or 1) 'or if true
- Next
- pointer = pointer + 8
- Dim mData_Out3() As Boolean = {CS(pointer + 7), CS(pointer + 6), CS(pointer + 5), CS(pointer + 4), CS(pointer + 3), CS(pointer + 2), CS(pointer + 1), CS(pointer + 0)}
- For Each b As Boolean In mData_Out3
- CB(subcount + 2) = CByte(CB(subcount + 2) << 1) 'shift
- If b Then CB(subcount + 2) = CByte(CB(subcount + 2) Or 1) 'or if true
- Next
- pointer = pointer + 8
- Dim mData_Out4() As Boolean = {CS(pointer + 7), CS(pointer + 6), CS(pointer + 5), CS(pointer + 4), CS(pointer + 3), CS(pointer + 2), CS(pointer + 1), CS(pointer + 0)}
- For Each b As Boolean In mData_Out4
- CB(subcount + 3) = CByte(CB(subcount + 3) << 1) 'shift
- If b Then CB(subcount + 3) = CByte(CB(subcount + 3) Or 1) 'or if true
- Next
- End If
- End If
- 'c
- '/c
- pointer = pointer + 6
- subcount = subcount + 4
- Loop
- If CheckBox1.Checked = False Then
- Call Scenechange()
- End If
- If ComboBox1.Text <> "TEST" Then
- Try
- SerialPort1.DiscardOutBuffer()
- For i = 0 To 79
- SerialPort1.Write(CB, i, 1)
- Next
- Catch ex As Exception
- Timer2.Enabled = False
- MsgBox("Send Failed, get Brandon.")
- End Try
- End If
- End Sub
- 'Ever Ticking Timer
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- If ComboBox1.Items.Contains(ComboBox1.Text) = True And SerialPort1.PortName <> ComboBox1.Text And ComboBox1.Text <> "TEST" Then
- If SerialPort1.IsOpen = True Then
- SerialPort1.Close()
- Thread.Sleep(500)
- End If
- SerialPort1.PortName = ComboBox1.Text
- SerialPort1.ReadTimeout = 500
- SerialPort1.WriteTimeout = 500
- SerialPort1.Encoding = System.Text.Encoding.UTF8
- SerialPort1.Open()
- End If
- End Sub
- 'Send Timer
- Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
- counter = counter + 1
- If Playlist = True Then
- If counter = NumericUpDown3.Value + 1 Then
- If Playlistcount <> DGV.RowCount - 1 Then
- Playlistcount = Playlistcount + 1
- DGV.Rows(Playlistcount).DefaultCellStyle.BackColor = Color.Blue
- DGV.Rows(Playlistcount - 1).DefaultCellStyle.BackColor = Color.White
- If DGV.Rows(Playlistcount).Cells(0).Value = "PAUSE" Then
- Timer2.Enabled = False
- Return
- End If
- SelectedFile = DGV.Rows(Playlistcount).Cells(0).Value
- Timer2.Enabled = False
- Call loadz()
- Timer2.Enabled = True
- NumericUpDown2.Value = 1
- Else
- Timer2.Enabled = False
- Button17.Text = "Start Playlist"
- NumericUpDown2.Enabled = True
- NumericUpDown3.Enabled = True
- Button17.Enabled = True
- ComboBox1.Enabled = True
- Playlist = False
- Return
- End If
- End If
- End If
- If counter = NumericUpDown3.Value + 1 Then
- counter = 1
- End If
- Call send()
- End Sub
- 'Max Scene
- Private Sub NumericUpDown3_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown3.ValueChanged
- NumericUpDown2.Maximum = NumericUpDown3.Value
- End Sub
- 'Scene Change
- Private Sub Scenechange()
- Dim pointervalue As Integer
- pointervalue = (NumericUpDown2.Value * 576)
- Dim index As Integer = 0
- Dim point As Drawing.Point
- Dim drawFont As New Font("Arial", 6)
- point.X = 0
- point.Y = 0
- For picindex = 0 To 191
- If CS(pointervalue + index) = True And CS(pointervalue + index + 1) = False And CS(pointervalue + index + 2) = False Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Red, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- End If
- If CS(pointervalue + index) = False And CS(pointervalue + index + 1) = True And CS(pointervalue + index + 2) = False Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.LimeGreen, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- End If
- If CS(pointervalue + index) = False And CS(pointervalue + index + 1) = False And CS(pointervalue + index + 2) = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Blue, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- End If
- If CS(pointervalue + index) = False And CS(pointervalue + index + 1) = True And CS(pointervalue + index + 2) = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Aquamarine, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- End If
- If CS(pointervalue + index) = True And CS(pointervalue + index + 1) = False And CS(pointervalue + index + 2) = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Pink, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- End If
- If CS(pointervalue + index) = True And CS(pointervalue + index + 1) = True And CS(pointervalue + index + 2) = False Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Yellow, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- End If
- If CS(pointervalue + index) = True And CS(pointervalue + index + 1) = True And CS(pointervalue + index + 2) = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.White, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- End If
- If CS(pointervalue + index) = False And CS(pointervalue + index + 1) = False And CS(pointervalue + index + 2) = False Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Black, 0, 0, 15, 15)
- GFX(picindex).DrawString(picindex.ToString, drawFont, Brushes.White, Point)
- PB(picindex).Image = PBpic(picindex)
- End If
- index = index + 3
- Next
- End Sub
- 'Change scene on numeric change
- Private Sub NumericUpDown2_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown2.ValueChanged
- If programset = True And CheckBox1.Checked = False And Timer2.Enabled = False Then
- Call Scenechange()
- End If
- End Sub
- 'Mouse Wheel
- Private Sub panel1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
- If e.Delta = 120 And NumericUpDown2.Value <> NumericUpDown3.Value Then
- NumericUpDown2.Value = NumericUpDown2.Value + 1
- Call Scenechange()
- End If
- If e.Delta = -120 And NumericUpDown2.Value <> 1 Then
- NumericUpDown2.Value = NumericUpDown2.Value - 1
- Call Scenechange()
- End If
- End Sub
- 'Copy from Prev
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- Dim pointervalue As Integer
- pointervalue = (NumericUpDown2.Value * 576)
- If NumericUpDown2.Value <> 1 Then
- For i = 0 To 575
- CS(pointervalue + i) = CS(pointervalue + i - 576)
- Next
- End If
- Call Scenechange()
- End Sub
- 'Copy from Next
- Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- Dim pointervalue As Integer
- pointervalue = (NumericUpDown2.Value * 576)
- If NumericUpDown2.Value <> 1 Then
- For i = 0 To 575
- CS(pointervalue + i) = CS(pointervalue + i + 576)
- Next
- End If
- Call Scenechange()
- End Sub
- 'Load
- Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
- If ListBox1.SelectedIndex <> -1 Then
- SelectedFile = filelist(ListBox1.SelectedIndex)
- Call loadz()
- End If
- End Sub
- Private Sub loadz()
- 'File Layout ex ^S1 version ^S2 Total Scenes ^S3...
- '^S1 = Version
- '^S2 = Total Scenes
- '^S3 = Speed
- '^S4 = Data
- '^S5 = End
- If System.IO.File.Exists(SelectedFile) = True Then
- GC.Collect()
- Mainsetupfile = System.IO.File.ReadAllText(SelectedFile)
- GC.Collect()
- 'Scenes
- NumericUpDown3.Value = Mainsetupfile.Substring(Mainsetupfile.IndexOf("^S2") + 3, (Mainsetupfile.IndexOf("^S3") - (Mainsetupfile.IndexOf("^S2") + 3)))
- 'Speed
- NumericUpDown25.Value = Mainsetupfile.Substring(Mainsetupfile.IndexOf("^S3") + 3, (Mainsetupfile.IndexOf("^S4") - (Mainsetupfile.IndexOf("^S3") + 3)))
- 'Data
- Dim LongString As String = ""
- LongString = Mainsetupfile.Substring(Mainsetupfile.IndexOf("^S4") + 3, (Mainsetupfile.IndexOf("^S5") - (Mainsetupfile.IndexOf("^S4") + 3)))
- For i = 0 To CS.Length - 1
- If LongString(i) = "1" Then
- CS(i) = True
- ElseIf LongString(i) = "0" Then
- CS(i) = False
- Else
- MsgBox("Get Brandon...")
- End If
- Next
- counter = 1
- Timer2.Interval = NumericUpDown25.Value
- If CheckBox1.Checked = False And Playlist = False Then
- Scenechange()
- End If
- Else
- MsgBox("Selection does not exist!")
- End If
- End Sub
- 'Save
- Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
- If TextBox1.Text = "" Then
- MsgBox("Need a name for this")
- Return
- End If
- Label9.Visible = True
- Label9.Text = "Saving..."
- 'CS to Bytes, the easy but nasty version...
- Dim Longstring As String = ""
- For i = 0 To CS.Length - 1
- If CS(i) = True Then
- Longstring = Longstring & "1"
- Else
- Longstring = Longstring & "0"
- End If
- Next
- 'Clear setup
- Mainsetupfile = ""
- 'Version
- Mainsetupfile = Mainsetupfile & "^S1" & "1"
- 'Total Scenes
- Mainsetupfile = Mainsetupfile & "^S2" & NumericUpDown3.Value.ToString
- 'Speed
- Mainsetupfile = Mainsetupfile & "^S3" & NumericUpDown25.Value.ToString
- 'Data
- Mainsetupfile = Mainsetupfile & "^S4" & Longstring
- 'End
- Mainsetupfile = Mainsetupfile & "^S5"
- GC.Collect()
- System.IO.File.WriteAllText(Directory & "\" & TextBox1.Text & ".mlf", Mainsetupfile)
- GC.Collect()
- Label9.Text = "Saved!!"
- Call Refresh()
- End Sub
- 'Refresh
- Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
- Call Refreshz()
- End Sub
- Private Sub Refreshz()
- ListBox1.Items.Clear()
- Dim filelist2 As String() = System.IO.Directory.GetFiles(System.IO.Directory.GetCurrentDirectory, "*.mlf")
- For Each file As String In filelist2
- ListBox1.Items.Add(file.Substring(Directory.Length + 1))
- Next
- filelist = filelist2
- End Sub
- 'Remove Saved!! label.
- Private Sub Button6_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button6.LostFocus
- Label9.Visible = False
- End Sub
- 'New
- Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
- For i = 0 To CS.Length - 1
- CS(i) = False
- Next
- Scenechange()
- End Sub
- 'Shifts
- Private Sub ShiftRight(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
- Dim pointervalue As Integer
- pointervalue = (NumericUpDown2.Value * 576)
- Dim index As Integer = 575
- Do Until index = 0
- Select Case index
- Case (64 * 3)
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (64 * 3) + 1
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (64 * 3) + 2
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (72 * 3)
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (72 * 3) + 1
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (72 * 3) + 2
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (80 * 3)
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (80 * 3) + 1
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (80 * 3) + 2
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (88 * 3)
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (88 * 3) + 1
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (88 * 3) + 2
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (96 * 3)
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (96 * 3) + 1
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (96 * 3) + 2
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (104 * 3)
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (104 * 3) + 1
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (104 * 3) + 2
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (112 * 3)
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (112 * 3) + 1
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (112 * 3) + 2
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (120 * 3)
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (120 * 3) + 1
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (120 * 3) + 2
- CS(pointervalue + index) = CS(pointervalue + index - (57 * 3))
- Case (0 * 3)
- CS(pointervalue + index) = False
- Case (0 * 3) + 1
- CS(pointervalue + index) = False
- Case (0 * 3) + 2
- CS(pointervalue + index) = False
- Case (8 * 3)
- CS(pointervalue + index) = False
- Case (8 * 3) + 1
- CS(pointervalue + index) = False
- Case (8 * 3) + 2
- CS(pointervalue + index) = False
- Case (16 * 3)
- CS(pointervalue + index) = False
- Case (16 * 3) + 1
- CS(pointervalue + index) = False
- Case (16 * 3) + 2
- CS(pointervalue + index) = False
- Case (24 * 3)
- CS(pointervalue + index) = False
- Case (24 * 3) + 1
- CS(pointervalue + index) = False
- Case (24 * 3) + 2
- CS(pointervalue + index) = False
- Case (32 * 3)
- CS(pointervalue + index) = False
- Case (32 * 3) + 1
- CS(pointervalue + index) = False
- Case (32 * 3) + 2
- CS(pointervalue + index) = False
- Case (40 * 3)
- CS(pointervalue + index) = False
- Case (40 * 3) + 1
- CS(pointervalue + index) = False
- Case (40 * 3) + 2
- CS(pointervalue + index) = False
- Case (48 * 3)
- CS(pointervalue + index) = False
- Case (48 * 3) + 1
- CS(pointervalue + index) = False
- Case (48 * 3) + 2
- CS(pointervalue + index) = False
- Case (56 * 3)
- CS(pointervalue + index) = False
- Case (56 * 3) + 1
- CS(pointervalue + index) = False
- Case (56 * 3) + 2
- CS(pointervalue + index) = False
- Case (128 * 3)
- CS(pointervalue + index) = False
- Case (128 * 3) + 1
- CS(pointervalue + index) = False
- Case (128 * 3) + 2
- CS(pointervalue + index) = False
- Case (136 * 3)
- CS(pointervalue + index) = False
- Case (136 * 3) + 1
- CS(pointervalue + index) = False
- Case (136 * 3) + 2
- CS(pointervalue + index) = False
- Case (144 * 3)
- CS(pointervalue + index) = False
- Case (144 * 3) + 1
- CS(pointervalue + index) = False
- Case (144 * 3) + 2
- CS(pointervalue + index) = False
- Case (152 * 3)
- CS(pointervalue + index) = False
- Case (152 * 3) + 1
- CS(pointervalue + index) = False
- Case (152 * 3) + 2
- CS(pointervalue + index) = False
- Case (160 * 3)
- CS(pointervalue + index) = False
- Case (160 * 3) + 1
- CS(pointervalue + index) = False
- Case (160 * 3) + 2
- CS(pointervalue + index) = False
- Case (168 * 3)
- CS(pointervalue + index) = False
- Case (168 * 3) + 1
- CS(pointervalue + index) = False
- Case (168 * 3) + 2
- CS(pointervalue + index) = False
- Case (176 * 3)
- CS(pointervalue + index) = False
- Case (176 * 3) + 1
- CS(pointervalue + index) = False
- Case (176 * 3) + 2
- CS(pointervalue + index) = False
- Case (184 * 3)
- CS(pointervalue + index) = False
- Case (184 * 3) + 1
- CS(pointervalue + index) = False
- Case (184 * 3) + 2
- CS(pointervalue + index) = False
- Case Else
- CS(pointervalue + index) = CS(pointervalue + index - 3)
- End Select
- index = index - 1
- Loop
- Call Scenechange()
- End Sub
- Private Sub ShiftLeft(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
- Dim pointervalue As Integer
- pointervalue = (NumericUpDown2.Value * 576)
- For i = 0 To 575
- Select Case i
- Case (7 * 3)
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (7 * 3) + 1
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (7 * 3) + 2
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (15 * 3)
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (15 * 3) + 1
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (15 * 3) + 2
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (23 * 3)
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (23 * 3) + 1
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (23 * 3) + 2
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (31 * 3)
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (31 * 3) + 1
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (31 * 3) + 2
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (39 * 3)
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (39 * 3) + 1
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (39 * 3) + 2
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (47 * 3)
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (47 * 3) + 1
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (47 * 3) + 2
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (55 * 3)
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (55 * 3) + 1
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (55 * 3) + 2
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (63 * 3)
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (63 * 3) + 1
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (63 * 3) + 2
- CS(pointervalue + i) = CS(pointervalue + i + (57 * 3))
- Case (71 * 3)
- CS(pointervalue + i) = False
- Case (71 * 3) + 1
- CS(pointervalue + i) = False
- Case (71 * 3) + 2
- CS(pointervalue + i) = False
- Case (79 * 3)
- CS(pointervalue + i) = False
- Case (79 * 3) + 1
- CS(pointervalue + i) = False
- Case (79 * 3) + 2
- CS(pointervalue + i) = False
- Case (87 * 3)
- CS(pointervalue + i) = False
- Case (87 * 3) + 1
- CS(pointervalue + i) = False
- Case (87 * 3) + 2
- CS(pointervalue + i) = False
- Case (95 * 3)
- CS(pointervalue + i) = False
- Case (95 * 3) + 1
- CS(pointervalue + i) = False
- Case (95 * 3) + 2
- CS(pointervalue + i) = False
- Case (103 * 3)
- CS(pointervalue + i) = False
- Case (103 * 3) + 1
- CS(pointervalue + i) = False
- Case (103 * 3) + 2
- CS(pointervalue + i) = False
- Case (111 * 3)
- CS(pointervalue + i) = False
- Case (111 * 3) + 1
- CS(pointervalue + i) = False
- Case (111 * 3) + 2
- CS(pointervalue + i) = False
- Case (119 * 3)
- CS(pointervalue + i) = False
- Case (119 * 3) + 1
- CS(pointervalue + i) = False
- Case (119 * 3) + 2
- CS(pointervalue + i) = False
- Case (127 * 3)
- CS(pointervalue + i) = False
- Case (127 * 3) + 1
- CS(pointervalue + i) = False
- Case (127 * 3) + 2
- CS(pointervalue + i) = False
- Case (135 * 3)
- CS(pointervalue + i) = False
- Case (135 * 3) + 1
- CS(pointervalue + i) = False
- Case (135 * 3) + 2
- CS(pointervalue + i) = False
- Case (143 * 3)
- CS(pointervalue + i) = False
- Case (143 * 3) + 1
- CS(pointervalue + i) = False
- Case (143 * 3) + 2
- CS(pointervalue + i) = False
- Case (151 * 3)
- CS(pointervalue + i) = False
- Case (151 * 3) + 1
- CS(pointervalue + i) = False
- Case (151 * 3) + 2
- CS(pointervalue + i) = False
- Case (159 * 3)
- CS(pointervalue + i) = False
- Case (159 * 3) + 1
- CS(pointervalue + i) = False
- Case (159 * 3) + 2
- CS(pointervalue + i) = False
- Case (167 * 3)
- CS(pointervalue + i) = False
- Case (167 * 3) + 1
- CS(pointervalue + i) = False
- Case (167 * 3) + 2
- CS(pointervalue + i) = False
- Case (175 * 3)
- CS(pointervalue + i) = False
- Case (175 * 3) + 1
- CS(pointervalue + i) = False
- Case (175 * 3) + 2
- CS(pointervalue + i) = False
- Case (183 * 3)
- CS(pointervalue + i) = False
- Case (183 * 3) + 1
- CS(pointervalue + i) = False
- Case (183 * 3) + 2
- CS(pointervalue + i) = False
- Case (191 * 3)
- CS(pointervalue + i) = False
- Case (191 * 3) + 1
- CS(pointervalue + i) = False
- Case (191 * 3) + 2
- CS(pointervalue + i) = False
- Case Else
- CS(pointervalue + i) = CS(pointervalue + i + 3)
- End Select
- Next
- Call Scenechange()
- End Sub
- Private Sub ShiftUp(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
- Dim pointervalue As Integer
- pointervalue = (NumericUpDown2.Value * 576)
- For i = 0 To 575
- Select Case i
- Case (56 * 3)
- CS(pointervalue + i) = False
- Case (56 * 3) + 1
- CS(pointervalue + i) = False
- Case (56 * 3) + 2
- CS(pointervalue + i) = False
- Case (57 * 3)
- CS(pointervalue + i) = False
- Case (57 * 3) + 1
- CS(pointervalue + i) = False
- Case (57 * 3) + 2
- CS(pointervalue + i) = False
- Case (58 * 3)
- CS(pointervalue + i) = False
- Case (58 * 3) + 1
- CS(pointervalue + i) = False
- Case (58 * 3) + 2
- CS(pointervalue + i) = False
- Case (59 * 3)
- CS(pointervalue + i) = False
- Case (59 * 3) + 1
- CS(pointervalue + i) = False
- Case (59 * 3) + 2
- CS(pointervalue + i) = False
- Case (60 * 3)
- CS(pointervalue + i) = False
- Case (60 * 3) + 1
- CS(pointervalue + i) = False
- Case (60 * 3) + 2
- CS(pointervalue + i) = False
- Case (61 * 3)
- CS(pointervalue + i) = False
- Case (61 * 3) + 1
- CS(pointervalue + i) = False
- Case (61 * 3) + 2
- CS(pointervalue + i) = False
- Case (62 * 3)
- CS(pointervalue + i) = False
- Case (62 * 3) + 1
- CS(pointervalue + i) = False
- Case (62 * 3) + 2
- CS(pointervalue + i) = False
- Case (63 * 3)
- CS(pointervalue + i) = False
- Case (63 * 3) + 1
- CS(pointervalue + i) = False
- Case (63 * 3) + 2
- CS(pointervalue + i) = False
- Case Else
- CS(pointervalue + i) = CS(pointervalue + i + 24)
- End Select
- Next
- Call Scenechange()
- End Sub
- Private Sub ShiftDown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
- Dim pointervalue As Integer
- pointervalue = (NumericUpDown2.Value * 576)
- Dim index As Integer = 575
- Do Until index = 0
- Select Case index
- Case (64 * 3)
- CS(pointervalue + index) = False
- Case (64 * 3) + 1
- CS(pointervalue + index) = False
- Case (64 * 3) + 2
- CS(pointervalue + index) = False
- Case (65 * 3)
- CS(pointervalue + index) = False
- Case (65 * 3) + 1
- CS(pointervalue + index) = False
- Case (65 * 3) + 2
- CS(pointervalue + index) = False
- Case (66 * 3)
- CS(pointervalue + index) = False
- Case (66 * 3) + 1
- CS(pointervalue + index) = False
- Case (66 * 3) + 2
- CS(pointervalue + index) = False
- Case (67 * 3)
- CS(pointervalue + index) = False
- Case (67 * 3) + 1
- CS(pointervalue + index) = False
- Case (67 * 3) + 2
- CS(pointervalue + index) = False
- Case (68 * 3)
- CS(pointervalue + index) = False
- Case (68 * 3) + 1
- CS(pointervalue + index) = False
- Case (68 * 3) + 2
- CS(pointervalue + index) = False
- Case (69 * 3)
- CS(pointervalue + index) = False
- Case (69 * 3) + 1
- CS(pointervalue + index) = False
- Case (69 * 3) + 2
- CS(pointervalue + index) = False
- Case (70 * 3)
- CS(pointervalue + index) = False
- Case (70 * 3) + 1
- CS(pointervalue + index) = False
- Case (70 * 3) + 2
- CS(pointervalue + index) = False
- Case (71 * 3)
- CS(pointervalue + index) = False
- Case (71 * 3) + 1
- CS(pointervalue + index) = False
- Case (71 * 3) + 2
- CS(pointervalue + index) = False
- Case Else
- CS(pointervalue + index) = CS(pointervalue + index - 24)
- End Select
- index = index - 1
- Loop
- Call Scenechange()
- End Sub
- 'MouseTrax
- Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
- If SerialPort1.IsOpen = True Then
- If MouseTraxActive = False Then
- MouseTraxActive = True
- Button12.Text = "Stop MouseTrax"
- Timer2.Interval = NumericUpDown25.Value
- NumericUpDown3.Value = 1
- Timer2.Enabled = True
- NumericUpDown2.Enabled = False
- NumericUpDown3.Enabled = False
- Button1.Enabled = False
- GroupBox3.Enabled = False
- For i = 0 To PB.Length - 2
- PB(i).Width = 16
- PB(i).Height = 16
- Next
- For i = 0 To 1200
- CS(i) = False
- Next
- Call Scenechange()
- Else
- MouseTraxActive = False
- Timer2.Enabled = False
- Button12.Text = "Start MouseTrax"
- NumericUpDown2.Enabled = True
- NumericUpDown3.Enabled = True
- Button1.Enabled = True
- GroupBox3.Enabled = True
- For i = 0 To PB.Length - 2
- PB(i).Width = 15
- PB(i).Height = 15
- Next
- End If
- End If
- End Sub
- 'Mouse events on PBs
- Private Sub PBEnter(ByVal Sender As Object, ByVal e As System.EventArgs)
- If MouseTraxActive = False Then
- Return
- End If
- PB(0).Focus()
- Dim senderPicBox As PictureBox = CType(Sender, PictureBox)
- Dim index As Integer
- Dim picindex As Integer
- Dim pointervalue As Integer
- pointervalue = (NumericUpDown2.Value * 576)
- index = (System.Array.IndexOf(PB, Sender)) * 3
- picindex = (System.Array.IndexOf(PB, Sender))
- If RadioButton1.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Red, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = True
- CS(pointervalue + index + 1) = False
- CS(pointervalue + index + 2) = False
- Return
- End If
- 'Is Red, make Green
- If RadioButton2.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.LimeGreen, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = False
- CS(pointervalue + index + 1) = True
- CS(pointervalue + index + 2) = False
- Return
- End If
- 'Is Green, make Blue
- If RadioButton3.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Blue, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = False
- CS(pointervalue + index + 1) = False
- CS(pointervalue + index + 2) = True
- Return
- End If
- 'Is Blue, make Teal
- If RadioButton4.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Aquamarine, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = False
- CS(pointervalue + index + 1) = True
- CS(pointervalue + index + 2) = True
- Return
- End If
- 'Is Teal, make Pink
- If RadioButton5.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Pink, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = True
- CS(pointervalue + index + 1) = False
- CS(pointervalue + index + 2) = True
- Return
- End If
- 'Is Pink, make Yellow
- If RadioButton6.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Yellow, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = True
- CS(pointervalue + index + 1) = True
- CS(pointervalue + index + 2) = False
- Return
- End If
- 'Is Yellow, make White
- If RadioButton7.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.White, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = True
- CS(pointervalue + index + 1) = True
- CS(pointervalue + index + 2) = True
- Return
- End If
- 'Is White, make Black
- If RadioButton8.Checked = True Then
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Black, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = False
- CS(pointervalue + index + 1) = False
- CS(pointervalue + index + 2) = False
- Return
- End If
- End Sub
- Private Sub PBExit(ByVal Sender As Object, ByVal e As System.EventArgs)
- If MouseTraxActive = False Then
- Return
- End If
- PB(0).Focus()
- Dim senderPicBox As PictureBox = CType(Sender, PictureBox)
- Dim index As Integer
- Dim picindex As Integer
- Dim pointervalue As Integer
- pointervalue = (NumericUpDown2.Value * 576)
- index = (System.Array.IndexOf(PB, Sender)) * 3
- picindex = (System.Array.IndexOf(PB, Sender))
- GFX(picindex) = System.Drawing.Graphics.FromImage(PBpic(picindex))
- GFX(picindex).FillRectangle(Brushes.Black, 0, 0, 15, 15)
- PB(picindex).Image = PBpic(picindex)
- CS(pointervalue + index) = False
- CS(pointervalue + index + 1) = False
- CS(pointervalue + index + 2) = False
- End Sub
- 'Insert Text
- Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
- Dim pointervalue As Integer
- pointervalue = (NumericUpDown2.Value * 576)
- Dim Characterbits As New BitArray(64)
- Dim charbytes() As Byte
- Dim Charsize As Integer
- Dim sentlength As Integer
- 'For i = 0 To 127
- ' CS(pointervalue + (i * 3)) = False
- ' CS(pointervalue + (i * 3) + 1) = False
- ' CS(pointervalue + (i * 3) + 2) = False
- 'Next
- For i = 0 To TextBox2.Text.Length - 1
- Select Case TextBox2.Text(i)
- Case "1"
- charbytes = {11, 18, 19, 25, 27, 35, 43, 49, 50, 51, 52, 53}
- Charsize = 5
- Case "2"
- charbytes = {10, 11, 17, 20, 28, 35, 42, 49, 50, 51, 52}
- Charsize = 4
- Case "3"
- charbytes = {9, 10, 11, 20, 25, 26, 27, 36, 44, 49, 50, 51}
- Charsize = 4
- Case "4"
- charbytes = {9, 12, 17, 20, 25, 28, 33, 34, 35, 36, 44, 52}
- Charsize = 4
- Case "5"
- charbytes = {9, 10, 11, 12, 17, 25, 26, 27, 36, 44, 44, 49, 50, 51}
- Charsize = 4
- Case "6"
- charbytes = {10, 11, 17, 25, 26, 27, 33, 36, 41, 44, 50, 51}
- Charsize = 4
- Case "7"
- charbytes = {9, 10, 11, 12, 20, 28, 35, 43, 50}
- Charsize = 4
- Case "8"
- charbytes = {10, 11, 17, 20, 26, 27, 33, 36, 41, 44, 50, 51}
- Charsize = 4
- Case "9"
- charbytes = {10, 11, 17, 20, 25, 28, 34, 35, 36, 44, 50, 51}
- Charsize = 4
- Case "0"
- charbytes = {10, 11, 17, 20, 25, 28, 33, 36, 41, 44, 50, 51}
- Charsize = 4
- Case "a"
- charbytes = {26, 27, 33, 36, 41, 44, 50, 51, 52, 53}
- Charsize = 5
- Case "b"
- charbytes = {9, 17, 25, 26, 27, 33, 36, 41, 44, 49, 50, 51}
- Charsize = 4
- Case "c"
- charbytes = {26, 27, 33, 41, 50, 51}
- Charsize = 3
- Case "d"
- charbytes = {12, 20, 26, 27, 28, 33, 36, 41, 44, 50, 51, 52}
- Charsize = 4
- Case "e"
- charbytes = {18, 19, 25, 28, 33, 34, 35, 36, 41, 50, 51, 52}
- Charsize = 4
- Case "f"
- charbytes = {11, 18, 20, 26, 33, 34, 35, 36, 42, 50}
- Charsize = 4
- Case "g"
- charbytes = {18, 19, 25, 28, 33, 36, 42, 43, 44, 52, 57, 58, 59}
- Charsize = 4
- Case "h"
- charbytes = {9, 17, 25, 33, 34, 35, 41, 44, 49, 52}
- Charsize = 4
- Case "i"
- charbytes = {17, 33, 41, 49}
- Charsize = 1
- Case "j"
- charbytes = {19, 35, 43, 49, 51, 58}
- Charsize = 3
- Case "k"
- charbytes = {17, 25, 33, 35, 41, 42, 49, 51}
- Charsize = 3
- Case "l"
- charbytes = {17, 25, 33, 41, 49}
- Charsize = 1
- Case "m"
- charbytes = {34, 36, 41, 43, 45, 49, 51, 53}
- Charsize = 5
- Case "n"
- charbytes = {25, 33, 34, 41, 43, 49, 51}
- Charsize = 3
- Case "o"
- charbytes = {26, 27, 33, 36, 41, 44, 50, 51}
- Charsize = 4
- Case "p"
- charbytes = {18, 19, 25, 28, 33, 36, 41, 42, 43, 49, 57}
- Charsize = 4
- Case "q"
- charbytes = {18, 19, 25, 28, 33, 36, 42, 43, 44, 52, 60}
- Charsize = 4
- Case "r"
- charbytes = {25, 26, 33, 35, 41, 49}
- Charsize = 3
- Case "s"
- charbytes = {18, 19, 25, 34, 43, 49, 50}
- Charsize = 3
- Case "t"
- charbytes = {18, 25, 26, 27, 34, 42, 50}
- Charsize = 3
- Case "u"
- charbytes = {33, 36, 41, 44, 50, 51}
- Charsize = 4
- Case "v"
- charbytes = {25, 27, 33, 35, 41, 43, 50}
- Charsize = 3
- Case "w"
- charbytes = {33, 35, 37, 41, 43, 45, 50, 52}
- Charsize = 5
- Case "x"
- charbytes = {33, 35, 42, 49, 51}
- Charsize = 3
- Case "y"
- charbytes = {33, 35, 41, 43, 50, 57}
- Charsize = 3
- Case "z"
- charbytes = {25, 26, 27, 28, 35, 42, 49, 50, 51, 52}
- Charsize = 4
- Case "A"
- charbytes = {10, 11, 17, 20, 25, 28, 33, 34, 35, 36, 41, 44, 49, 52}
- Charsize = 4
- Case "B"
- charbytes = {9, 10, 11, 17, 20, 25, 26, 27, 33, 36, 41, 44, 49, 50, 51}
- Charsize = 4
- Case "C"
- charbytes = {10, 11, 12, 17, 25, 33, 41, 50, 51, 52}
- Charsize = 4
- Case "D"
- charbytes = {9, 10, 11, 17, 20, 25, 28, 33, 36, 41, 44, 49, 50, 51}
- Charsize = 4
- Case "E"
- charbytes = {9, 10, 11, 12, 17, 25, 26, 27, 28, 33, 41, 49, 50, 51, 52}
- Charsize = 4
- Case "F"
- charbytes = {9, 10, 11, 12, 17, 25, 26, 27, 28, 33, 41, 49}
- Charsize = 4
- Case "G"
- charbytes = {10, 11, 17, 20, 25, 33, 35, 36, 41, 44, 50, 51}
- Charsize = 4
- Case "H"
- charbytes = {9, 12, 17, 20, 25, 28, 33, 34, 35, 36, 41, 44, 49, 52}
- Charsize = 4
- Case "I"
- charbytes = {9, 10, 11, 12, 13, 19, 27, 35, 43, 49, 50, 51, 52, 53}
- Charsize = 5
- Case "J"
- charbytes = {9, 10, 11, 12, 13, 20, 28, 36, 41, 44, 50, 51}
- Charsize = 5
- Case "K"
- charbytes = {9, 12, 17, 19, 25, 26, 33, 34, 41, 43, 49, 52}
- Charsize = 4
- Case "L"
- charbytes = {9, 17, 25, 33, 41, 49, 50, 51, 52}
- Charsize = 4
- Case "M"
- charbytes = {9, 13, 17, 18, 20, 21, 25, 27, 29, 33, 37, 41, 45, 49, 53}
- Charsize = 5
- Case "N"
- charbytes = {9, 13, 17, 18, 21, 25, 27, 29, 33, 36, 37, 41, 45, 49, 53}
- Charsize = 5
- Case "O"
- charbytes = {10, 11, 17, 20, 25, 28, 33, 36, 41, 44, 50, 51}
- Charsize = 4
- Case "P"
- charbytes = {9, 10, 11, 17, 20, 25, 28, 33, 34, 35, 41, 49}
- Charsize = 4
- Case "Q"
- charbytes = {10, 11, 17, 20, 25, 28, 33, 36, 41, 44, 50, 51, 52, 53}
- Charsize = 5
- Case "R"
- charbytes = {9, 10, 11, 17, 20, 25, 26, 27, 33, 34, 41, 43, 49, 52}
- Charsize = 4
- Case "S"
- charbytes = {10, 11, 12, 17, 26, 35, 44, 49, 50, 51}
- Charsize = 4
- Case "T"
- charbytes = {9, 10, 11, 12, 13, 19, 27, 35, 43, 51}
- Charsize = 5
- Case "U"
- charbytes = {9, 12, 17, 20, 25, 28, 33, 36, 41, 44, 50, 51}
- Charsize = 4
- Case "V"
- charbytes = {9, 13, 17, 21, 25, 29, 33, 37, 42, 44, 51}
- Charsize = 5
- Case "W"
- charbytes = {9, 13, 17, 21, 25, 29, 33, 35, 37, 41, 42, 44, 45, 49, 53}
- Charsize = 5
- Case "X"
- charbytes = {17, 21, 26, 28, 35, 42, 44, 49, 53}
- Charsize = 5
- Case "Y"
- charbytes = {9, 13, 18, 20, 27, 35, 43, 51}
- Charsize = 5
- Case "Z"
- charbytes = {9, 10, 11, 12, 13, 21, 27, 28, 34, 41, 49, 50, 51, 52, 53}
- Charsize = 5
- Case ":"
- charbytes = {25, 41}
- Charsize = 1
- Case "!"
- charbytes = {9, 17, 25, 33, 49}
- Charsize = 1
- Case "?"
- charbytes = {10, 11, 17, 20, 28, 34, 35, 50}
- Charsize = 4
- Case "."
- charbytes = {49}
- Charsize = 1
- Case ";"
- charbytes = {26, 42, 49}
- Charsize = 2
- Case "'"
- charbytes = {9, 17}
- Charsize = 1
- Case " "
- charbytes = {}
- Charsize = 1
- Case Else
- Return
- End Select
- Dim exitindex As Boolean
- For Each index As Byte In charbytes
- exitindex = False
- If sentlength > 6 Then
- index = index + 56
- ElseIf sentlength > 2 And (index + sentlength) >= 0 And (index + sentlength) <= 4 Then
- index = index + 56
- ElseIf sentlength > 2 And (index + sentlength) >= 8 And (index + sentlength) <= 12 Then
- index = index + 56
- ElseIf sentlength > 2 And (index + sentlength) >= 16 And (index + sentlength) <= 20 Then
- index = index + 56
- ElseIf sentlength > 2 And (index + sentlength) >= 24 And (index + sentlength) <= 28 Then
- index = index + 56
- ElseIf sentlength > 2 And (index + sentlength) >= 32 And (index + sentlength) <= 36 Then
- index = index + 56
- ElseIf sentlength > 2 And (index + sentlength) >= 40 And (index + sentlength) <= 44 Then
- index = index + 56
- ElseIf sentlength > 2 And (index + sentlength) >= 48 And (index + sentlength) <= 52 Then
- index = index + 56
- ElseIf sentlength > 2 And (index + sentlength) >= 56 And (index + sentlength) <= 60 Then
- index = index + 56
- End If
- If sentlength > 10 And (index + sentlength) >= 64 And (index + sentlength) <= 67 Then
- exitindex = True
- ElseIf sentlength > 10 And (index + sentlength) >= 72 And (index + sentlength) <= 75 Then
- exitindex = True
- ElseIf sentlength > 10 And (index + sentlength) >= 80 And (index + sentlength) <= 83 Then
- exitindex = True
- ElseIf sentlength > 10 And (index + sentlength) >= 88 And (index + sentlength) <= 91 Then
- exitindex = True
- ElseIf sentlength > 10 And (index + sentlength) >= 96 And (index + sentlength) <= 99 Then
- exitindex = True
- ElseIf sentlength > 10 And (index + sentlength) >= 104 And (index + sentlength) <= 107 Then
- exitindex = True
- ElseIf sentlength > 10 And (index + sentlength) >= 112 And (index + sentlength) <= 115 Then
- exitindex = True
- ElseIf sentlength > 10 And (index + sentlength) >= 120 And (index + sentlength) <= 123 Then
- exitindex = True
- End If
- If sentlength > 16 Then
- exitindex = True
- End If
- If exitindex = False Then
- If RadioButton1.Checked = True Then
- CS(pointervalue + (index * 3) + (sentlength * 3)) = True
- CS(pointervalue + (index * 3) + (sentlength * 3) + 1) = False
- CS(pointervalue + (index * 3) + (sentlength * 3) + 2) = False
- End If
- If RadioButton2.Checked = True Then
- CS(pointervalue + (index * 3) + (sentlength * 3)) = False
- CS(pointervalue + (index * 3) + (sentlength * 3) + 1) = True
- CS(pointervalue + (index * 3) + (sentlength * 3) + 2) = False
- End If
- If RadioButton3.Checked = True Then
- CS(pointervalue + (index * 3) + (sentlength * 3)) = False
- CS(pointervalue + (index * 3) + (sentlength * 3) + 1) = False
- CS(pointervalue + (index * 3) + (sentlength * 3) + 2) = True
- End If
- If RadioButton4.Checked = True Then
- CS(pointervalue + (index * 3) + (sentlength * 3)) = False
- CS(pointervalue + (index * 3) + (sentlength * 3) + 1) = True
- CS(pointervalue + (index * 3) + (sentlength * 3) + 2) = True
- End If
- If RadioButton5.Checked = True Then
- CS(pointervalue + (index * 3) + (sentlength * 3)) = True
- CS(pointervalue + (index * 3) + (sentlength * 3) + 1) = False
- CS(pointervalue + (index * 3) + (sentlength * 3) + 2) = True
- End If
- If RadioButton6.Checked = True Then
- CS(pointervalue + (index * 3) + (sentlength * 3)) = True
- CS(pointervalue + (index * 3) + (sentlength * 3) + 1) = True
- CS(pointervalue + (index * 3) + (sentlength * 3) + 2) = False
- End If
- If RadioButton7.Checked = True Then
- CS(pointervalue + (index * 3) + (sentlength * 3)) = True
- CS(pointervalue + (index * 3) + (sentlength * 3) + 1) = True
- CS(pointervalue + (index * 3) + (sentlength * 3) + 2) = True
- End If
- If RadioButton8.Checked = True Then
- CS(pointervalue + (index * 3) + (sentlength * 3)) = False
- CS(pointervalue + (index * 3) + (sentlength * 3) + 1) = False
- CS(pointervalue + (index * 3) + (sentlength * 3) + 2) = False
- End If
- End If
- Next
- sentlength = sentlength + Charsize + 1
- Next
- Scenechange()
- End Sub
- 'Animation Playlist
- Private Sub AddToList(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
- DGV.Rows.Add()
- DGV.Rows(DGV.Rows.Count - 1).Cells(0).Value = ListBox1.SelectedItem
- DGV.Rows(DGV.Rows.Count - 1).Cells(1).Value = "1"
- End Sub
- Private Sub APShiftUp(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
- Dim tempfile As String
- Dim tempcount As String
- If DGV.CurrentRow.Index <> 0 Then
- tempfile = DGV.Rows(DGV.CurrentRow.Index).Cells(0).Value
- tempcount = DGV.Rows(DGV.CurrentRow.Index).Cells(1).Value
- DGV.Rows(DGV.CurrentRow.Index).Cells(0).Value = DGV.Rows(DGV.CurrentRow.Index - 1).Cells(0).Value
- DGV.Rows(DGV.CurrentRow.Index).Cells(1).Value = DGV.Rows(DGV.CurrentRow.Index - 1).Cells(1).Value
- DGV.Rows(DGV.CurrentRow.Index - 1).Cells(0).Value = tempfile
- DGV.Rows(DGV.CurrentRow.Index - 1).Cells(1).Value = tempcount
- End If
- End Sub
- Private Sub APShiftDown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
- Dim tempfile As String
- Dim tempcount As String
- If DGV.CurrentRow.Index <> DGV.RowCount - 1 Then
- tempfile = DGV.Rows(DGV.CurrentRow.Index).Cells(0).Value
- tempcount = DGV.Rows(DGV.CurrentRow.Index).Cells(1).Value
- DGV.Rows(DGV.CurrentRow.Index).Cells(0).Value = DGV.Rows(DGV.CurrentRow.Index + 1).Cells(0).Value
- DGV.Rows(DGV.CurrentRow.Index).Cells(1).Value = DGV.Rows(DGV.CurrentRow.Index + 1).Cells(1).Value
- DGV.Rows(DGV.CurrentRow.Index + 1).Cells(0).Value = tempfile
- DGV.Rows(DGV.CurrentRow.Index + 1).Cells(1).Value = tempcount
- End If
- End Sub
- Private Sub APDelete(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click
- If DGV.RowCount <> 0 Then
- DGV.Rows.RemoveAt(DGV.CurrentRow.Index)
- End If
- End Sub
- Private Sub APStart(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
- If SerialPort1.IsOpen = True Or ComboBox1.Text = "TEST" And DGV.RowCount <> 0 Then
- If Timer2.Enabled = True Then
- DGV.Rows(Playlistcount - 1).DefaultCellStyle.BackColor = Color.White
- Timer2.Enabled = False
- Button17.Text = "Start Playlist"
- NumericUpDown2.Enabled = True
- NumericUpDown3.Enabled = True
- Button17.Enabled = True
- ComboBox1.Enabled = True
- Playlist = False
- Else
- SelectedFile = DGV.Rows(0).Cells(0).Value
- Call loadz()
- counter = 1
- Playlistcount = 0
- Timer2.Interval = NumericUpDown25.Value
- Button17.Text = "Stop Playlist"
- Timer2.Enabled = True
- NumericUpDown2.Value = 1
- NumericUpDown2.Enabled = False
- NumericUpDown3.Enabled = False
- ComboBox1.Enabled = False
- Playlist = True
- End If
- End If
- End Sub
- Private Sub APPause(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click
- DGV.Rows.Add()
- DGV.Rows(DGV.Rows.Count - 1).Cells(0).Value = "PAUSE"
- DGV.Rows(DGV.Rows.Count - 1).Cells(1).Value = " "
- End Sub
- Private Sub APContinue(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click
- If DGV.Rows(Playlistcount).Cells(0).Value = "PAUSE" Then
- Playlistcount = Playlistcount + 1
- If Playlistcount <> DGV.RowCount Then
- DGV.Rows(Playlistcount).DefaultCellStyle.BackColor = Color.Blue
- DGV.Rows(Playlistcount - 1).DefaultCellStyle.BackColor = Color.White
- SelectedFile = DGV.Rows(Playlistcount).Cells(0).Value
- Call loadz()
- Timer2.Enabled = True
- NumericUpDown2.Value = 1
- Call send()
- Else
- DGV.Rows(Playlistcount - 1).DefaultCellStyle.BackColor = Color.White
- Timer2.Enabled = False
- Button17.Text = "Start Playlist"
- NumericUpDown2.Enabled = True
- NumericUpDown3.Enabled = True
- Button17.Enabled = True
- ComboBox1.Enabled = True
- Playlist = False
- End If
- End If
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement