evil boris

36
1. // EvilBoris' Hyperion Config file 2. 3. { 4. /// Device configuration contains the following fields: 5. /// * 'name' : The user friendly name of the device (only used for display purposes) 6. /// * 'type' : The type of the device or leds (known types for now are 'ws2801', 'ldp8806', 7. /// 'lpd6803', 'sedu', 'adalight', 'lightpack', 'test' and 'none') 8. /// * 'output' : The output specification depends on selected device. This can for example be the 9. /// device specifier, device serial number, or the output file name 10. /// * 'rate' : The baudrate of the output to the device 11. /// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.). 12. "device" : 13. { 14. "name" : "MyPi", 15. "type" : "lightberry", 16. "output" : "/dev/spidev0.0", 17. "rate" : 1000000, 18. "colorOrder" : "rgb" 19. }, 20. 21. /// Color manipulation configuration used to tune the output colors to specific surroundings. 22. /// The configuration contains a list of color-transforms. Each transform contains the 23. /// following fields: 24. /// * 'id' : The unique identifier of the color transformation (eg 'device_1') /// * 'leds' : The indices (or index ranges) of the leds to which this color transform applies 25. /// (eg '0-5, 9, 11, 12-17'). The indices are zero based. /// * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following 26. /// tuning parameters: 27. /// - 'saturationGain' The gain adjustement of the saturation 28. /// - 'valueGain' The gain adjustement of the value 29. /// * 'red'/'green'/'blue' : The manipulation in the Red-Green-Blue color domain with the

Upload: jose-det

Post on 18-Jan-2016

249 views

Category:

Documents


0 download

DESCRIPTION

Raspberry pi

TRANSCRIPT

Page 1: Evil Boris

1. // EvilBoris' Hyperion Config file

2.  

3. {

4.         /// Device configuration contains the following fields:

5.         /// * 'name'       : The user friendly name of the device (only used

for display purposes)

6.         /// * 'type'       : The type of the device or leds (known types for

now are 'ws2801', 'ldp8806',

7.         ///                  'lpd6803', 'sedu', 'adalight', 'lightpack', 'test'

and 'none')

8.         /// * 'output'     : The output specification depends on selected

device. This can for example be the

9.         ///                  device specifier, device serial number, or the

output file name

10.         /// * 'rate'       : The baudrate of the output to the device

11.         /// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr',

etc.).

12.         "device" :

13.         {

14.                 "name"       : "MyPi",

15.                 "type"       : "lightberry",

16.                 "output"     : "/dev/spidev0.0",

17.                 "rate"       : 1000000,

18.                 "colorOrder" : "rgb"

19.         },

20.  

21.         /// Color manipulation configuration used to tune the output colors to

specific surroundings.

22.         /// The configuration contains a list of color-transforms. Each

transform contains the

23.         /// following fields:

24.         ///  * 'id'   : The unique identifier of the color transformation (eg

'device_1')       ///  * 'leds' : The indices (or index ranges) of the leds to

which this color transform applies

25.         ///             (eg '0-5, 9, 11, 12-17'). The indices are zero based.  

///  * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with

the following

26.         ///            tuning parameters:

27.         ///            - 'saturationGain'  The gain adjustement of the

saturation

28.         ///            - 'valueGain'       The gain adjustement of the value

29.         ///  * 'red'/'green'/'blue' : The manipulation in the Red-Green-Blue

color domain with the

Page 2: Evil Boris

30.         ///                           following tuning parameters for each

channel:

31.         ///            - 'threshold'       The minimum required input value for

the channel to be on

32.         ///                                (else zero)

33.         ///            - 'gamma'           The gamma-curve correction factor

34.         ///            - 'blacklevel'      The lowest possible value (when the

channel is black)

35.         ///            - 'whitelevel'      The highest possible value (when the

channel is white)

36.         ///

37.         /// Next to the list with color transforms there is also a smoothing

option.

38.         ///  * 'smoothing' : Smoothing of the colors in the time-domain with

the following tuning

39.         ///                  parameters:

40.         ///            - 'type'            The type of smoothing algorithm

('linear' or 'none')

41.         ///            - 'time_ms'         The time constant for smoothing

algorithm in milliseconds

42.         ///            - 'updateFrequency' The update frequency of the leds in

Hz

43.         "color" :

44.         {

45.                 "transform" :

46.                 [

47.                         {

48.                                 "id"   : "default",

49.                                 "leds" : "0-43",

50.                                 "hsv" :

51.                                 {

52.                                         "saturationGain" : 1.2200,

53.                                         "valueGain"      : 0.8200

54.                                 },

55.                                 "red" :

56.                                 {

57.                                         "threshold"  : 0.1900,

58.                                         "gamma"      : 2.2000,

59.                                         "blacklevel" : 0.0000,

60.                                         "whitelevel" : 1.0000

61.                                 },

62.                                 "green" :

63.                                 {

64.                                         "threshold"  : 0.2200,

Page 3: Evil Boris

65.                                         "gamma"      : 2.2000,

66.                                         "blacklevel" : 0.0000,

67.                                         "whitelevel" : 0.8700

68.                                 },

69.                                 "blue" :

70.                                 {

71.                                         "threshold"  : 0.2200,

72.                                         "gamma"      : 2.9000,

73.                                         "blacklevel" : 0.0000,

74.                                         "whitelevel" : 1.0000

75.                                 }

76.                         },

77.                         {

78.                                 "id"   : "off",

79.                                 "leds" : "44-47",

80.                                 "hsv" :

81.                                 {

82.                                         "saturationGain" : 5.0000,

83.                                         "valueGain"      : 0.0000

84.                                 },

85.                                 "red" :

86.                                 {

87.                                         "threshold"  : 0.0000,

88.                                         "gamma"      : 1.0000,

89.                                         "blacklevel" : 0.0000,

90.                                         "whitelevel" : 1.0000

91.                                 },

92.                                 "green" :

93.                                 {

94.                                         "threshold"  : 0.0000,

95.                                         "gamma"      : 1.0000,

96.                                         "blacklevel" : 0.0000,

97.                                         "whitelevel" : 0.8700

98.                                 },

99.                                 "blue" :

100.                                 {

101.                                         "threshold"  : 0.0000,

102.                                         "gamma"      : 1.0000,

103.                                         "blacklevel" : 0.0000,

104.                                         "whitelevel" : 1.0000

105.                                 }

106.                         }

107.                 ],

108.                 "smoothing" :

Page 4: Evil Boris

109.                 {

110.                         "type"            : "linear",

111.                         "time_ms"         : 90,

112.                         "updateFrequency" : 30.0000

113.                 }

114.         },

115.  

116.         ///  The configuration for each individual led. This contains

the specification of the area

117.         ///  averaged of an input image for each led to determine its

color. Each item in the list

118.         ///  contains the following fields:

119.         ///  * index: The index of the led. This determines its

location in the string of leds; zero

120.         ///           being the first led.

121.         ///  * hscan: The fractional part of the image along the

horizontal used for the averaging

122.         ///           (minimum and maximum inclusive)

123.         ///  * vscan: The fractional part of the image along the

vertical used for the averaging

124.         ///           (minimum and maximum inclusive)

125.         "leds" :

126.         [

127.                 {

128.                         "index" : 0,

129.                         "hscan" : { "minimum" : 0.0000, "maximum" :

0.0600 },

130.                         "vscan" : { "minimum" : 0.8750, "maximum" :

1.0000 }

131.                 },

132.                 {

133.                         "index" : 1,

134.                         "hscan" : { "minimum" : 0.0000, "maximum" :

0.0600 },

135.                         "vscan" : { "minimum" : 0.7500, "maximum" :

0.8750 }

136.                 },

137.                 {

138.                         "index" : 2,

139.                         "hscan" : { "minimum" : 0.0000, "maximum" :

0.0600 },

140.                         "vscan" : { "minimum" : 0.6250, "maximum" :

0.7500 }

141.                 },

Page 5: Evil Boris

142.                 {

143.                         "index" : 3,

144.                         "hscan" : { "minimum" : 0.0000, "maximum" :

0.0600 },

145.                         "vscan" : { "minimum" : 0.5000, "maximum" :

0.6250 }

146.                 },

147.                 {

148.                         "index" : 4,

149.                         "hscan" : { "minimum" : 0.0000, "maximum" :

0.0600 },

150.                         "vscan" : { "minimum" : 0.3750, "maximum" :

0.5000 }

151.                 },

152.                 {

153.                         "index" : 5,

154.                         "hscan" : { "minimum" : 0.0000, "maximum" :

0.0600 },

155.                         "vscan" : { "minimum" : 0.2500, "maximum" :

0.3750 }

156.                 },

157.                 {

158.                         "index" : 6,

159.                         "hscan" : { "minimum" : 0.0000, "maximum" :

0.0600 },

160.                         "vscan" : { "minimum" : 0.1250, "maximum" :

0.2500 }

161.                 },

162.                 {

163.                         "index" : 7,

164.                         "hscan" : { "minimum" : 0.0000, "maximum" :

0.0600 },

165.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1250 }

166.                 },

167.                 {

168.                         "index" : 8,

169.                         "hscan" : { "minimum" : 0.0000, "maximum" :

0.0714 },

170.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

171.                 },

172.                 {

173.                         "index" : 9,

Page 6: Evil Boris

174.                         "hscan" : { "minimum" : 0.0714, "maximum" :

0.1429 },

175.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

176.                 },

177.                 {

178.                         "index" : 10,

179.                         "hscan" : { "minimum" : 0.1429, "maximum" :

0.2143 },

180.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

181.                 },

182.                 {

183.                         "index" : 11,

184.                         "hscan" : { "minimum" : 0.2143, "maximum" :

0.2857 },

185.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

186.                 },

187.                 {

188.                         "index" : 12,

189.                         "hscan" : { "minimum" : 0.2857, "maximum" :

0.3571 },

190.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

191.                 },

192.                 {

193.                         "index" : 13,

194.                         "hscan" : { "minimum" : 0.3571, "maximum" :

0.4286 },

195.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

196.                 },

197.                 {

198.                         "index" : 14,

199.                         "hscan" : { "minimum" : 0.4286, "maximum" :

0.5000 },

200.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

201.                 },

202.                 {

203.                         "index" : 15,

204.                         "hscan" : { "minimum" : 0.5000, "maximum" :

0.5714 },

Page 7: Evil Boris

205.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

206.                 },

207.                 {

208.                         "index" : 16,

209.                         "hscan" : { "minimum" : 0.5714, "maximum" :

0.6429 },

210.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

211.                 },

212.                 {

213.                         "index" : 17,

214.                         "hscan" : { "minimum" : 0.6429, "maximum" :

0.7143 },

215.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

216.                 },

217.                 {

218.                         "index" : 18,

219.                         "hscan" : { "minimum" : 0.7143, "maximum" :

0.7857 },

220.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

221.                 },

222.                 {

223.                         "index" : 19,

224.                         "hscan" : { "minimum" : 0.7857, "maximum" :

0.8571 },

225.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

226.                 },

227.                 {

228.                         "index" : 20,

229.                         "hscan" : { "minimum" : 0.8571, "maximum" :

0.9286 },

230.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

231.                 },

232.                 {

233.                         "index" : 21,

234.                         "hscan" : { "minimum" : 0.9286, "maximum" :

1.0000 },

235.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1200 }

Page 8: Evil Boris

236.                 },

237.                 {

238.                         "index" : 22,

239.                         "hscan" : { "minimum" : 0.9400, "maximum" :

1.0000 },

240.                         "vscan" : { "minimum" : 0.0000, "maximum" :

0.1250 }

241.                 },

242.                 {

243.                         "index" : 23,

244.                         "hscan" : { "minimum" : 0.9400, "maximum" :

1.0000 },

245.                         "vscan" : { "minimum" : 0.1250, "maximum" :

0.2500 }

246.                 },

247.                 {

248.                         "index" : 24,

249.                         "hscan" : { "minimum" : 0.9400, "maximum" :

1.0000 },

250.                         "vscan" : { "minimum" : 0.2500, "maximum" :

0.3750 }

251.                 },

252.                 {

253.                         "index" : 25,

254.                         "hscan" : { "minimum" : 0.9400, "maximum" :

1.0000 },

255.                         "vscan" : { "minimum" : 0.3750, "maximum" :

0.5000 }

256.                 },

257.                 {

258.                         "index" : 26,

259.                         "hscan" : { "minimum" : 0.9400, "maximum" :

1.0000 },

260.                         "vscan" : { "minimum" : 0.5000, "maximum" :

0.6250 }

261.                 },

262.                 {

263.                         "index" : 27,

264.                         "hscan" : { "minimum" : 0.9400, "maximum" :

1.0000 },

265.                         "vscan" : { "minimum" : 0.6250, "maximum" :

0.7500 }

266.                 },

267.                 {

Page 9: Evil Boris

268.                         "index" : 28,

269.                         "hscan" : { "minimum" : 0.9400, "maximum" :

1.0000 },

270.                         "vscan" : { "minimum" : 0.7500, "maximum" :

0.8750 }

271.                 },

272.                 {

273.                         "index" : 29,

274.                         "hscan" : { "minimum" : 0.9400, "maximum" :

1.0000 },

275.                         "vscan" : { "minimum" : 0.8750, "maximum" :

1.0000 }

276.                 },

277.                 {

278.                         "index" : 30,

279.                         "hscan" : { "minimum" : 0.9286, "maximum" :

1.0000 },

280.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

281.                 },

282.                 {

283.                         "index" : 31,

284.                         "hscan" : { "minimum" : 0.8571, "maximum" :

0.9286 },

285.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

286.                 },

287.                 {

288.                         "index" : 32,

289.                         "hscan" : { "minimum" : 0.7857, "maximum" :

0.8571 },

290.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

291.                 },

292.                 {

293.                         "index" : 33,

294.                         "hscan" : { "minimum" : 0.7143, "maximum" :

0.7857 },

295.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

296.                 },

297.                 {

298.                         "index" : 34,

Page 10: Evil Boris

299.                         "hscan" : { "minimum" : 0.6429, "maximum" :

0.7143 },

300.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

301.                 },

302.                 {

303.                         "index" : 35,

304.                         "hscan" : { "minimum" : 0.5714, "maximum" :

0.6429 },

305.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

306.                 },

307.                 {

308.                         "index" : 36,

309.                         "hscan" : { "minimum" : 0.5000, "maximum" :

0.5714 },

310.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

311.                 },

312.                 {

313.                         "index" : 37,

314.                         "hscan" : { "minimum" : 0.4286, "maximum" :

0.5000 },

315.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

316.                 },

317.                 {

318.                         "index" : 38,

319.                         "hscan" : { "minimum" : 0.3571, "maximum" :

0.4286 },

320.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

321.                 },

322.                 {

323.                         "index" : 39,

324.                         "hscan" : { "minimum" : 0.2857, "maximum" :

0.3571 },

325.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

326.                 },

327.                 {

328.                         "index" : 40,

329.                         "hscan" : { "minimum" : 0.2143, "maximum" :

0.2857 },

Page 11: Evil Boris

330.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

331.                 },

332.                 {

333.                         "index" : 41,

334.                         "hscan" : { "minimum" : 0.1429, "maximum" :

0.2143 },

335.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

336.                 },

337.                 {

338.                         "index" : 42,

339.                         "hscan" : { "minimum" : 0.0714, "maximum" :

0.1429 },

340.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

341.                 },

342.                 {

343.                         "index" : 43,

344.                         "hscan" : { "minimum" : 0.0000, "maximum" :

0.0714 },

345.                         "vscan" : { "minimum" : 0.8800, "maximum" :

1.0000 }

346.                 },

347.                 {

348.                         "index" : 44,

349.                         "hscan" : { "minimum" : 0.7059, "maximum" :

0.7647 },

350.                         "vscan" : { "minimum" : 0.9200, "maximum" :

1.0000 }

351.                 },

352.                 {

353.                         "index" : 45,

354.                         "hscan" : { "minimum" : 0.6471, "maximum" :

0.7059 },

355.                         "vscan" : { "minimum" : 0.9200, "maximum" :

1.0000 }

356.                 },

357.                 {

358.                         "index" : 46,

359.                         "hscan" : { "minimum" : 0.5882, "maximum" :

0.6471 },

360.                         "vscan" : { "minimum" : 0.9200, "maximum" :

1.0000 }

Page 12: Evil Boris

361.                 },

362.                 {

363.                         "index" : 47,

364.                         "hscan" : { "minimum" : 0.5294, "maximum" :

0.5882 },

365.                         "vscan" : { "minimum" : 0.9200, "maximum" :

1.0000 }

366.                 }

367.         ],

368.  

369.         /// The black border configuration, contains the following

items:

370.         ///  * enable    : true if the detector should be activated

371.         ///  * threshold : Value below which a pixel is regarded as

black (value between 0.0 and 1.0)

372.         "blackborderdetector" :

373.         {

374.                 "enable" : true,

375.                 "threshold" : 0.20

376.         },

377.  

378.         /// The configuration of the effect engine, contains the

following items:

379.         ///  * paths        : An array with absolute location(s) of

directories with effects

380.         ///  * bootsequence : The effect selected as 'boot sequence'

381.         "effects" :

382.         {

383.                 "paths" :

384.                 [

385.                         "/opt/hyperion/effects"

386.                 ]

387.         },

388.  

389.         "bootsequence" :

390.         {

391.                 "effect" : "Rainbow swirl fast",

392.                 "duration_ms" : 3000

393.         },

394.  

395.         ///  The configuration for the frame-grabber, contains the

following items:

396.         ///   * width        : The width of the grabbed frames [pixels]

Page 13: Evil Boris

397.         ///   * height       : The height of the grabbed frames

[pixels]

398.         ///   * frequency_Hz : The frequency of the frame grab [Hz]

399. //      "framegrabber" :

400. //      {

401. //              "width" : 64,

402. //              "height" : 64,

403. //              "frequency_Hz" : 10.0

404. //      },

405.  

406.         /// The configuration of the XBMC connection used to enable and

disable the frame-grabber. Contains the following fields:

407.         ///  * xbmcAddress       : The IP address of the XBMC-host

408.         ///  * xbmcTcpPort       : The TCP-port of the XBMC-server

409.         ///  * grabVideo         : Flag indicating that the frame-

grabber is on(true) during video playback

410.         ///  * grabPictures      : Flag indicating that the frame-

grabber is on(true) during picture show

411.         ///  * grabAudio         : Flag indicating that the frame-

grabber is on(true) during audio playback

412.         ///  * grabMenu          : Flag indicating that the frame-

grabber is on(true) in the XBMC menu

413.         ///  * grabScreensaver   : Flag indicating that the frame-

grabber is on(true) when XBMC is on screensaver

414.         ///  * enable3DDetection : Flag indicating that the frame-

grabber should switch to a 3D compatible modus if a 3D video is playing

415.         "xbmcVideoChecker" :

416.         {

417.                 "xbmcAddress" : "127.0.0.1",

418.                 "xbmcTcpPort" : 9090,

419.                 "grabVideo" : true,

420.                 "grabPictures" : true,

421.                 "grabAudio" : true,

422.                 "grabMenu" : false,

423.                 "grabScreensaver" : true,

424.                 "enable3DDetection" : true

425.         },

426.  

427.         /// The configuration of the Json server which enables the json

remote interface

428.         ///  * port : Port at which the json server is started

429.         "jsonServer" :

430.         {

431.                 "port" : 19444

Page 14: Evil Boris

432.         },

433.  

434.         /// The configuration of the Proto server which enables the

protobuffer remote interface

435.         ///  * port : Port at which the protobuffer server is started

436.         "protoServer" :

437.         {

438.                 "port" : 19445

439.         },

440.  

441.         /// The configuration of the boblight server which enables the

boblight remote interface

442.         ///  * port : Port at which the boblight server is started

443. //      "boblightServer" :

444. //      {

445. //              "port" : 19333

446. //      },

447.  

448.  

449.         /// Configuration for the embedded V4L2 grabber

450.         ///  * device          : V4L2 Device to use

[default="/dev/video0"]

451.         ///  * input           : V4L2 input to use [default=0]

452.         ///  * standard        : Video standard (no-change/PAL/NTSC)

[default="no-change"]

453.         ///  * width                : V4L2 width to set [default=-1]

454.         ///  * height               : V4L2 height to set [default=-1]

455.         ///  * frameDecimation      : Frame decimation factor

[default=2]

456.         ///  * sizeDecimation       : Size decimation factor

[default=8]

457.         ///  * priority             : Hyperion priority channel

[default=800]

458.         ///  * mode                 : 3D mode to use 2D/3DSBS/3DTAB

(note: no autodetection) [default="2D"]

459.         ///  * cropLeft             : Cropping from the left

[default=0]

460.         ///  * cropRight            : Cropping from the right

[default=0]

461.         ///  * cropTop              : Cropping from the top [default=0]

462.         ///  * cropBottom           : Cropping from the bottom

[default=0]

463.         ///  * redSignalThreshold   : Signal threshold for the red

channel between 0.0 and 1.0 [default=0.0]

Page 15: Evil Boris

464.         ///  * greenSignalThreshold : Signal threshold for the green

channel between 0.0 and 1.0 [default=0.0]......

465.         ///  * blueSignalThreshold  : Signal threshold for the blue

channel between 0.0 and 1.0 [default=0.0]

466.         "grabber-v4l2" :

467.         {

468.                 "device" : "/dev/video0",

469.                 "input" : 0,

470.                 "standard" : "no-change",

471.                 "width" : 1,

472.                 "height" : 1,

473.                 "frameDecimation" : 2,

474.                 "sizeDecimation" : 4,

475.                 "priority" : 800,

476.                 "mode" : "2D",

477.                 "cropLeft" : 10,

478.                 "cropRight" : 8,

479.                 "cropTop" : 12,

480.                 "cropBottom" : 19,

481.                 "redSignalThreshold" : 0.2,

482.                 "greenSignalThreshold" : 0.2,

483.                 "blueSignalThreshold" : 0.2

484.         },

485.  

486.  

487.         "endOfJson" : "endOfJson"

488. }

Page 16: Evil Boris

/ EvilBoris' Hyperion Config file

{

/// Device configuration contains the following fields:

/// * 'name' : The user friendly name of the device (only used for display purposes)

/// * 'type' : The type of the device or leds (known types for now are 'ws2801', 'ldp8806',

/// 'lpd6803', 'sedu', 'adalight', 'lightpack', 'test' and 'none')

/// * 'output' : The output specification depends on selected device. This can for example be the

/// device specifier, device serial number, or the output file name

/// * 'rate' : The baudrate of the output to the device

/// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.).

"device" :

{

"name" : "MyPi",

"type" : "lightberry",

"output" : "/dev/spidev0.0",

"rate" : 1000000,

"colorOrder" : "rgb"

},

/// Color manipulation configuration used to tune the output colors to specific surroundings.

/// The configuration contains a list of color-transforms. Each transform contains the

/// following fields:

/// * 'id' : The unique identifier of the color transformation (eg 'device_1') /// * 'leds' : The indices (or index ranges) of the leds to which this color transform applies

/// (eg '0-5, 9, 11, 12-17'). The indices are zero based. /// * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following

/// tuning parameters:

Page 17: Evil Boris

/// - 'saturationGain' The gain adjustement of the saturation

/// - 'valueGain' The gain adjustement of the value

/// * 'red'/'green'/'blue' : The manipulation in the Red-Green-Blue color domain with the

/// following tuning parameters for each channel:

/// - 'threshold' The minimum required input value for the channel to be on

/// (else zero)

/// - 'gamma' The gamma-curve correction factor

/// - 'blacklevel' The lowest possible value (when the channel is black)

/// - 'whitelevel' The highest possible value (when the channel is white)

///

/// Next to the list with color transforms there is also a smoothing option.

/// * 'smoothing' : Smoothing of the colors in the time-domain with the following tuning

/// parameters:

/// - 'type' The type of smoothing algorithm ('linear' or 'none')

/// - 'time_ms' The time constant for smoothing algorithm in milliseconds

/// - 'updateFrequency' The update frequency of the leds in Hz

"color" :

{

"transform" :

[

{

"id" : "default",

"leds" : "0-43",

"hsv" :

{

"saturationGain" : 1.2200,

"valueGain" : 0.8200

},

"red" :

{

Page 18: Evil Boris

"threshold" : 0.1900,

"gamma" : 2.2000,

"blacklevel" : 0.0000,

"whitelevel" : 1.0000

},

"green" :

{

"threshold" : 0.2200,

"gamma" : 2.2000,

"blacklevel" : 0.0000,

"whitelevel" : 0.8700

},

"blue" :

{

"threshold" : 0.2200,

"gamma" : 2.9000,

"blacklevel" : 0.0000,

"whitelevel" : 1.0000

}

},

{

"id" : "off",

"leds" : "44-47",

"hsv" :

{

"saturationGain" : 5.0000,

"valueGain" : 0.0000

},

"red" :

{

"threshold" : 0.0000,

Page 19: Evil Boris

"gamma" : 1.0000,

"blacklevel" : 0.0000,

"whitelevel" : 1.0000

},

"green" :

{

"threshold" : 0.0000,

"gamma" : 1.0000,

"blacklevel" : 0.0000,

"whitelevel" : 0.8700

},

"blue" :

{

"threshold" : 0.0000,

"gamma" : 1.0000,

"blacklevel" : 0.0000,

"whitelevel" : 1.0000

}

}

],

"smoothing" :

{

"type" : "linear",

"time_ms" : 90,

"updateFrequency" : 30.0000

}

},

/// The configuration for each individual led. This contains the specification of the area

/// averaged of an input image for each led to determine its color. Each item in the list

/// contains the following fields:

Page 20: Evil Boris

/// * index: The index of the led. This determines its location in the string of leds; zero

/// being the first led.

/// * hscan: The fractional part of the image along the horizontal used for the averaging

/// (minimum and maximum inclusive)

/// * vscan: The fractional part of the image along the vertical used for the averaging

/// (minimum and maximum inclusive)

"leds" :

[

{

"index" : 0,

"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },

"vscan" : { "minimum" : 0.8750, "maximum" : 1.0000 }

},

{

"index" : 1,

"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },

"vscan" : { "minimum" : 0.7500, "maximum" : 0.8750 }

},

{

"index" : 2,

"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },

"vscan" : { "minimum" : 0.6250, "maximum" : 0.7500 }

},

{

"index" : 3,

"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },

"vscan" : { "minimum" : 0.5000, "maximum" : 0.6250 }

},

{

"index" : 4,

Page 21: Evil Boris

"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },

"vscan" : { "minimum" : 0.3750, "maximum" : 0.5000 }

},

{

"index" : 5,

"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },

"vscan" : { "minimum" : 0.2500, "maximum" : 0.3750 }

},

{

"index" : 6,

"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },

"vscan" : { "minimum" : 0.1250, "maximum" : 0.2500 }

},

{

"index" : 7,

"hscan" : { "minimum" : 0.0000, "maximum" : 0.0600 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1250 }

},

{

"index" : 8,

"hscan" : { "minimum" : 0.0000, "maximum" : 0.0714 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 9,

"hscan" : { "minimum" : 0.0714, "maximum" : 0.1429 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 10,

"hscan" : { "minimum" : 0.1429, "maximum" : 0.2143 },

Page 22: Evil Boris

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 11,

"hscan" : { "minimum" : 0.2143, "maximum" : 0.2857 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 12,

"hscan" : { "minimum" : 0.2857, "maximum" : 0.3571 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 13,

"hscan" : { "minimum" : 0.3571, "maximum" : 0.4286 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 14,

"hscan" : { "minimum" : 0.4286, "maximum" : 0.5000 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 15,

"hscan" : { "minimum" : 0.5000, "maximum" : 0.5714 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 16,

"hscan" : { "minimum" : 0.5714, "maximum" : 0.6429 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

Page 23: Evil Boris

},

{

"index" : 17,

"hscan" : { "minimum" : 0.6429, "maximum" : 0.7143 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 18,

"hscan" : { "minimum" : 0.7143, "maximum" : 0.7857 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 19,

"hscan" : { "minimum" : 0.7857, "maximum" : 0.8571 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 20,

"hscan" : { "minimum" : 0.8571, "maximum" : 0.9286 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 21,

"hscan" : { "minimum" : 0.9286, "maximum" : 1.0000 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1200 }

},

{

"index" : 22,

"hscan" : { "minimum" : 0.9400, "maximum" : 1.0000 },

"vscan" : { "minimum" : 0.0000, "maximum" : 0.1250 }

},

Page 24: Evil Boris

{

"index" : 23,

"hscan" : { "minimum" : 0.9400, "maximum" : 1.0000 },

"vscan" : { "minimum" : 0.1250, "maximum" : 0.2500 }

},

{

"index" : 24,

"hscan" : { "minimum" : 0.9400, "maximum" : 1.0000 },

"vscan" : { "minimum" : 0.2500, "maximum" : 0.3750 }

},

{

"index" : 25,

"hscan" : { "minimum" : 0.9400, "maximum" : 1.0000 },

"vscan" : { "minimum" : 0.3750, "maximum" : 0.5000 }

},

{

"index" : 26,

"hscan" : { "minimum" : 0.9400, "maximum" : 1.0000 },

"vscan" : { "minimum" : 0.5000, "maximum" : 0.6250 }

},

{

"index" : 27,

"hscan" : { "minimum" : 0.9400, "maximum" : 1.0000 },

"vscan" : { "minimum" : 0.6250, "maximum" : 0.7500 }

},

{

"index" : 28,

"hscan" : { "minimum" : 0.9400, "maximum" : 1.0000 },

"vscan" : { "minimum" : 0.7500, "maximum" : 0.8750 }

},

{

Page 25: Evil Boris

"index" : 29,

"hscan" : { "minimum" : 0.9400, "maximum" : 1.0000 },

"vscan" : { "minimum" : 0.8750, "maximum" : 1.0000 }

},

{

"index" : 30,

"hscan" : { "minimum" : 0.9286, "maximum" : 1.0000 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 31,

"hscan" : { "minimum" : 0.8571, "maximum" : 0.9286 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 32,

"hscan" : { "minimum" : 0.7857, "maximum" : 0.8571 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 33,

"hscan" : { "minimum" : 0.7143, "maximum" : 0.7857 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 34,

"hscan" : { "minimum" : 0.6429, "maximum" : 0.7143 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 35,

Page 26: Evil Boris

"hscan" : { "minimum" : 0.5714, "maximum" : 0.6429 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 36,

"hscan" : { "minimum" : 0.5000, "maximum" : 0.5714 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 37,

"hscan" : { "minimum" : 0.4286, "maximum" : 0.5000 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 38,

"hscan" : { "minimum" : 0.3571, "maximum" : 0.4286 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 39,

"hscan" : { "minimum" : 0.2857, "maximum" : 0.3571 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 40,

"hscan" : { "minimum" : 0.2143, "maximum" : 0.2857 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 41,

"hscan" : { "minimum" : 0.1429, "maximum" : 0.2143 },

Page 27: Evil Boris

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 42,

"hscan" : { "minimum" : 0.0714, "maximum" : 0.1429 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 43,

"hscan" : { "minimum" : 0.0000, "maximum" : 0.0714 },

"vscan" : { "minimum" : 0.8800, "maximum" : 1.0000 }

},

{

"index" : 44,

"hscan" : { "minimum" : 0.7059, "maximum" : 0.7647 },

"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }

},

{

"index" : 45,

"hscan" : { "minimum" : 0.6471, "maximum" : 0.7059 },

"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }

},

{

"index" : 46,

"hscan" : { "minimum" : 0.5882, "maximum" : 0.6471 },

"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }

},

{

"index" : 47,

"hscan" : { "minimum" : 0.5294, "maximum" : 0.5882 },

"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }

Page 28: Evil Boris

}

],

/// The black border configuration, contains the following items:

/// * enable : true if the detector should be activated

/// * threshold : Value below which a pixel is regarded as black (value between 0.0 and 1.0)

"blackborderdetector" :

{

"enable" : true,

"threshold" : 0.20

},

/// The configuration of the effect engine, contains the following items:

/// * paths : An array with absolute location(s) of directories with effects

/// * bootsequence : The effect selected as 'boot sequence'

"effects" :

{

"paths" :

[

"/opt/hyperion/effects"

]

},

"bootsequence" :

{

"effect" : "Rainbow swirl fast",

"duration_ms" : 3000

},

/// The configuration for the frame-grabber, contains the following items:

Page 29: Evil Boris

/// * width : The width of the grabbed frames [pixels]

/// * height : The height of the grabbed frames [pixels]

/// * frequency_Hz : The frequency of the frame grab [Hz]

// "framegrabber" :

// {

// "width" : 64,

// "height" : 64,

// "frequency_Hz" : 10.0

// },

/// The configuration of the XBMC connection used to enable and disable the frame-grabber. Contains the following fields:

/// * xbmcAddress : The IP address of the XBMC-host

/// * xbmcTcpPort : The TCP-port of the XBMC-server

/// * grabVideo : Flag indicating that the frame-grabber is on(true) during video playback

/// * grabPictures : Flag indicating that the frame-grabber is on(true) during picture show

/// * grabAudio : Flag indicating that the frame-grabber is on(true) during audio playback

/// * grabMenu : Flag indicating that the frame-grabber is on(true) in the XBMC menu

/// * grabScreensaver : Flag indicating that the frame-grabber is on(true) when XBMC is on screensaver

/// * enable3DDetection : Flag indicating that the frame-grabber should switch to a 3D compatible modus if a 3D video is playing

"xbmcVideoChecker" :

{

"xbmcAddress" : "127.0.0.1",

"xbmcTcpPort" : 9090,

"grabVideo" : true,

"grabPictures" : true,

"grabAudio" : true,

"grabMenu" : false,

Page 30: Evil Boris

"grabScreensaver" : true,

"enable3DDetection" : true

},

/// The configuration of the Json server which enables the json remote interface

/// * port : Port at which the json server is started

"jsonServer" :

{

"port" : 19444

},

/// The configuration of the Proto server which enables the protobuffer remote interface

/// * port : Port at which the protobuffer server is started

"protoServer" :

{

"port" : 19445

},

/// The configuration of the boblight server which enables the boblight remote interface

/// * port : Port at which the boblight server is started

// "boblightServer" :

// {

// "port" : 19333

// },

/// Configuration for the embedded V4L2 grabber

/// * device : V4L2 Device to use [default="/dev/video0"]

/// * input : V4L2 input to use [default=0]

/// * standard : Video standard (no-change/PAL/NTSC) [default="no-change"]

Page 31: Evil Boris

/// * width : V4L2 width to set [default=-1]

/// * height : V4L2 height to set [default=-1]

/// * frameDecimation : Frame decimation factor [default=2]

/// * sizeDecimation : Size decimation factor [default=8]

/// * priority : Hyperion priority channel [default=800]

/// * mode : 3D mode to use 2D/3DSBS/3DTAB (note: no autodetection) [default="2D"]

/// * cropLeft : Cropping from the left [default=0]

/// * cropRight : Cropping from the right [default=0]

/// * cropTop : Cropping from the top [default=0]

/// * cropBottom : Cropping from the bottom [default=0]

/// * redSignalThreshold : Signal threshold for the red channel between 0.0 and 1.0 [default=0.0]

/// * greenSignalThreshold : Signal threshold for the green channel between 0.0 and 1.0 [default=0.0]......

/// * blueSignalThreshold : Signal threshold for the blue channel between 0.0 and 1.0 [default=0.0]

"grabber-v4l2" :

{

"device" : "/dev/video0",

"input" : 0,

"standard" : "no-change",

"width" : 1,

"height" : 1,

"frameDecimation" : 2,

"sizeDecimation" : 4,

"priority" : 800,

"mode" : "2D",

"cropLeft" : 10,

"cropRight" : 8,

"cropTop" : 12,

"cropBottom" : 19,

Page 32: Evil Boris

"redSignalThreshold" : 0.2,

"greenSignalThreshold" : 0.2,

"blueSignalThreshold" : 0.2

},

"endOfJson" : "endOfJson"

}