Video spis för semester (9 / 10 steg)
Steg 9: Anpassa din spis
Att välja en video
Med video_fireplace_190.spin öppen i verktyget Propeller, bläddra ner till hitta metod filechooser, det är ansvarig för lastning valda videon, och ändra den när vi vill spela en annan video. Här är den fullständiga koden:
PUB filechooser | i
i:=sd.popen(string("intro.dat"), "r")
repeat while playstop == 0
Repeat
IF videoselect == 2
i:=sd.popen(string("feliz.dat"), "r")
playstop := 0
repeat while (playstop == 0) AND (videoselect == 2)
videoselect := 1
IF videoselect == 3
i:=sd.popen(string("winter.dat"), "r")
playstop := 0
repeat while (playstop == 0) AND (videoselect == 3)
videoselect := 1
IF videoselect == 4
i:=sd.popen(string("rejoice.dat"), "r")
playstop := 0
repeat while (playstop == 0) AND (videoselect == 4)
videoselect := 1
IF videoselect == 5
i:=sd.popen(string("behome.dat"), "r")
playstop := 0
repeat while (playstop == 0) AND (videoselect == 5)
videoselect := 1
IF playstop == 1
playstop := 0
i:=sd.popen(string("mloop.dat"), "r")
repeat while (playstop == 0) AND (videoselect == 1)
Filechooser startar genom att läsa in intro.dat. Det vet intro.dat är klar spelar när spelaren ändras playstop till 1. Sedan går in i dess viktigaste loop. Vi kan omedelbart byta videor genom att ändra värdet för den variabel videoselect. När det är 1, spelar mloop.dat. När det är 2, feliz.dat spelar, och så vidare. Kan vi lägga till fler videor genom att lägga till en annan om, som detta.
IF videoselect == 8
i:=sd.popen(string("somevid.dat"), "r")
playstop := 0
repeat while (playstop == 0) AND (videoselect == 8)
videoselect := 1
När varje video är klar, det anges videoselect till 1, så att mloop.dat börjar spelas upp, men vi kunde ha somevid.dat spela en annan video genom att ändra den sista raden från videoselect: = 1 till oavsett video vill vi istället.
Vem bestämmer vad video att titta på?
I Video spisen har jag en extra kugge köra filepicker för att titta på växlarna och ändra värdet för videoselect. Men du kunde koppla in övrig kod – det behöver bara att signalera till filechooser att läsa in en annan video genom att ändra värdet för videoselect.