source: roaraudio/roard/include/light.h @ 5961:06e7fd9e4c25

Last change on this file since 5961:06e7fd9e4c25 was 5961:06e7fd9e4c25, checked in by phi, 10 years ago

Updates of copyright and license headers

File size: 2.2 KB
Line 
1//light.h:
2
3/*
4 *      Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2008-2014
5 *
6 *  This file is part of roard a part of RoarAudio,
7 *  a cross-platform sound system for both, home and professional use.
8 *  See README for details.
9 *
10 *  This file is free software; you can redistribute it and/or modify
11 *  it under the terms of the GNU General Public License version 3
12 *  as published by the Free Software Foundation.
13 *
14 *  RoarAudio is distributed in the hope that it will be useful,
15 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 *  GNU General Public License for more details.
18 *
19 *  You should have received a copy of the GNU General Public License
20 *  along with this software; see the file COPYING.  If not, write to
21 *  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
22 *  Boston, MA 02110-1301, USA.
23 *
24 */
25
26#ifndef _LIGHT_H_
27#define _LIGHT_H_
28
29#include <roaraudio.h>
30
31#ifndef ROAR_WITHOUT_DCOMP_LIGHT
32
33#define LIGHT_CHANNELS_DEFAULT 512 /* one DMX Universe */
34#define MAX_EVENTS_PER_CYCLE   16  /* this*cfreq is event thruput (16*100Hz = 1.6kEvents/s) */
35
36extern struct light_state {
37 unsigned int    channels;
38 uint8_t events[MAX_EVENTS_PER_CYCLE];
39 size_t eventsqueuelen;
40 uint8_t * state;
41 uint8_t * changes;
42} g_light_state;
43
44extern struct light_mixer {
45 int stream;
46} g_light_mixer;
47
48int light_init  (uint32_t channels);
49int light_free  (void);
50
51int light_update(void);
52int light_reset (void);
53int light_reinit(void);
54
55int light_check_stream  (int id);
56int light_send_stream   (int id);
57
58// for plugins:
59int     light_dmxchannel_get(size_t index);
60int     light_dmxchannel_set(size_t index, uint8_t val);
61ssize_t light_dmxchannel_num(void);
62int     light_dmxchannel_swap_universe(uint8_t * universe, size_t len);
63
64int light_dmxevent_add(const uint8_t * events, size_t len);
65int light_dmxevent_read(const uint8_t ** events, size_t * len);
66#define light_dmxevent_addone(event) light_dmxevent_add(&(uint8_t){(event)}, 1)
67
68// codec filters:
69int cf_light_roardmx_read(int id, struct roar_stream_server * ss);
70int cf_light_roardmx_write(int id, struct roar_stream_server * ss);
71
72#endif
73
74#endif
75
76//ll
Note: See TracBrowser for help on using the repository browser.