Patch from Wincent Balin: Remove some duplicate code from the PDa plugin
[kugel-rb.git] / apps / plugins / pdbox / pdbox.h
blobd8ddd96078ab6dbea0fc5899ac8a472cc49c9b33
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
10 * Copyright (C) 2009 Wincent Balin
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
22 #ifndef PDBOX_H
23 #define PDBOX_H
25 #if 0
26 /* Use dbestfit. */
27 #include "bmalloc.h"
28 #include "dmalloc.h"
29 #endif
31 /* Minimal memory size. */
32 #define MIN_MEM_SIZE (4 * 1024 * 1024)
34 /* Maximal size of the datagram. */
35 #define MAX_DATAGRAM_SIZE 255
37 /* This structure replaces a UDP datagram. */
38 struct datagram
40 bool used;
41 uint8_t size;
42 char data[MAX_DATAGRAM_SIZE];
45 /* Network functions prototypes. */
46 void net_init(void);
47 void net_destroy(void);
48 bool send_datagram(struct event_queue* route, int port,
49 char* data, size_t size);
50 bool receive_datagram(struct event_queue* route, int port,
51 struct datagram* buffer);
53 /* Network message queues. */
54 extern struct event_queue gui_to_core;
55 extern struct event_queue core_to_gui;
57 /* UDP ports of the original software. */
58 #define PD_CORE_PORT 3333
59 #define PD_GUI_PORT 3334
61 /* Convinience macros. */
62 #define SEND_TO_CORE(data) \
63 send_datagram(&gui_to_core, PD_CORE_PORT, data, rb->strlen(data))
64 #define RECEIVE_TO_CORE(buffer) \
65 receive_datagram(&gui_to_core, PD_CORE_PORT, buffer)
66 #define SEND_FROM_CORE(data) \
67 send_datagram(&core_to_gui, PD_GUI_PORT, data, rb->strlen(data))
68 #define RECEIVE_FROM_CORE(buffer) \
69 receive_datagram(&core_to_gui, PD_GUI_PORT, buffer)
71 #endif
72 /***************************************************************************
73 * __________ __ ___.
74 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
75 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
76 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
77 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
78 * \/ \/ \/ \/ \/
79 * $Id$
81 * Copyright (C) 2009 Wincent Balin
83 * This program is free software; you can redistribute it and/or
84 * modify it under the terms of the GNU General Public License
85 * as published by the Free Software Foundation; either version 2
86 * of the License, or (at your option) any later version.
88 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
89 * KIND, either express or implied.
91 ****************************************************************************/
93 #ifndef PDBOX_H
94 #define PDBOX_H
96 #if 0
97 /* Use dbestfit. */
98 #include "bmalloc.h"
99 #include "dmalloc.h"
100 #endif
102 /* Minimal memory size. */
103 #define MIN_MEM_SIZE (4 * 1024 * 1024)
105 /* Maximal size of the datagram. */
106 #define MAX_DATAGRAM_SIZE 255
108 /* This structure replaces a UDP datagram. */
109 struct datagram
111 bool used;
112 uint8_t size;
113 char data[MAX_DATAGRAM_SIZE];
116 /* Network functions prototypes. */
117 void net_init(void);
118 void net_destroy(void);
119 bool send_datagram(struct event_queue* route, int port,
120 char* data, size_t size);
121 bool receive_datagram(struct event_queue* route, int port,
122 struct datagram* buffer);
124 /* Network message queues. */
125 extern struct event_queue gui_to_core;
126 extern struct event_queue core_to_gui;
128 /* UDP ports of the original software. */
129 #define PD_CORE_PORT 3333
130 #define PD_GUI_PORT 3334
132 /* Convinience macros. */
133 #define SEND_TO_CORE(data) \
134 send_datagram(&gui_to_core, PD_CORE_PORT, data, rb->strlen(data))
135 #define RECEIVE_TO_CORE(buffer) \
136 receive_datagram(&gui_to_core, PD_CORE_PORT, buffer)
137 #define SEND_FROM_CORE(data) \
138 send_datagram(&core_to_gui, PD_GUI_PORT, data, rb->strlen(data))
139 #define RECEIVE_FROM_CORE(buffer) \
140 receive_datagram(&core_to_gui, PD_GUI_PORT, buffer)
142 #endif