-
Notifications
You must be signed in to change notification settings - Fork 0
/
play.js
61 lines (53 loc) · 1.43 KB
/
play.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Plays a video with sound on an led panel
// usage: sudo node play.js <filename>
const apa102video = require('./apa102video')
const videoScreen = new apa102video(botLeftSerpMatrix(24,24))
//PLAY VIDEO
//videoScreen.init()
//.then(() => videoScreen.createMp3(process.argv[2]))
//.then(mp3File => {
// const vid = videoScreen.playVideo(process.argv[2], {sound: mp3File, keepAspect: false})
// vid.on('end', () => {
// videoScreen.clearScreen()
// process.exit()
// })
//})
//.catch(err => { console.log(err)})
//STREAM WEB CAM
//videoScreen.init()
//.then(() => {
// console.log('init complete')
// const video = videoScreen.playCam('/dev/video0')
//})
//.catch(err => { console.log(err)})
//PLAY GIF
//videoScreen.init()
//.then(() => {
// const video = videoScreen.playGif(process.argv[2])
//})
//
//function to help create led layout matrix with a panel laid out as follows
// -->-->-->-->-->
// ^
// <--<--<--<--<--
// ^
// -->-->-->-->-->
function botLeftSerpMatrix (width, height, numberOfLeds = width*height) {
let matrix = []
for (let n = 0; n < (width * height); n++) {
let col
let row = height - Math.floor(n/width) - 1
if(Math.floor((n/width) % 2)) {
col = width - (n%width) - 1
} else {
col = n%width
}
if(matrix[row] === undefined) { matrix[row] = []}
if(n < numberOfLeds) {
matrix[row][col] = n
} else {
matrix[row][col] = -1
}
}
return matrix
}