Changeset 1609:3c2a3f0fb127 in roaraudio
- Timestamp:
- 04/20/09 19:45:27 (15 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
include/roaraudio/stream.h
r978 r1609 43 43 #define ROAR_DIR_META 8 44 44 #define ROAR_DIR_BIDIR 9 45 #define ROAR_DIR_DIRIDS 10 45 46 46 47 -
roarclients/roartypes.c
r1324 r1609 33 33 { "roar_sample", sizeof(struct roar_sample) }, 34 34 { "roar_client", sizeof(struct roar_client) }, 35 { "roard_config", sizeof(struct roard_config) }, 35 36 { "roar_connection", sizeof(struct roar_connection) }, 36 37 { "roar_audio_info", sizeof(struct roar_audio_info) }, … … 44 45 45 46 while ((++c)->name != NULL) 46 printf("%-20s = % 4i Bytes = %4i Bits\n", c->name, c->len, c->len * 8);47 printf("%-20s = %5i Bytes = %6i Bits\n", c->name, c->len, c->len * 8); 47 48 48 49 return 0; -
roard/include/roard.h
r1537 r1609 103 103 int g_terminate; 104 104 105 struct roar_audio_info * g_sa; 105 struct roar_audio_info * g_sa, * g_max_sa; 106 107 struct roard_config { 108 uint32_t flags; 109 struct { 110 uint32_t flags; 111 struct roar_mixer_settings mixer; 112 int mixer_channels; 113 } streams[ROAR_DIR_DIRIDS]; 114 } * g_config; 106 115 107 116 #endif -
roard/include/streams.h
r1590 r1609 83 83 int streams_get_client (int id); 84 84 85 int streams_set_dir (int id, int dir, int defaults); 86 85 87 int streams_set_fh (int id, int fh); 86 88 int streams_get_fh (int id); -
roard/roard.c
r1581 r1609 129 129 #define R_SETGID 2 130 130 131 int init_config (void) { 132 int i; 133 134 memset(g_config, 0, sizeof(struct roard_config)); 135 136 for (i = 0; i < ROAR_DIR_DIRIDS; i++) { 137 g_config->streams[i].mixer_channels = 1; 138 g_config->streams[i].mixer.rpg_mul = 1; 139 g_config->streams[i].mixer.rpg_div = 1; 140 g_config->streams[i].mixer.scale = 65535; 141 g_config->streams[i].mixer.mixer[0] = g_config->streams[i].mixer.scale; 142 } 143 144 return 0; 145 } 146 131 147 int add_output (char * drv, char * dev, char * opts, int prim, int count) { 132 148 int stream; … … 171 187 memcpy(&(s->info), g_sa, sizeof(struct roar_audio_info)); 172 188 173 s->dir = ROAR_DIR_OUTPUT; 189 if ( streams_set_dir(stream, ROAR_DIR_OUTPUT, 1) == -1 ) { 190 streams_delete(stream); 191 return -1; 192 } 174 193 s->pos_rel_id = -1; 175 194 // s->info.codec = codec; … … 293 312 char user_sock[80] = {0}; 294 313 #endif 295 struct roar_audio_info sa; 314 struct roar_audio_info sa, max_sa; 315 struct roard_config config; 296 316 #ifdef ROAR_HAVE_FORK 297 317 int daemon = 0; … … 363 383 sa.codec = ROAR_CODEC_DEFAULT; 364 384 365 g_sa = &sa; 385 g_sa = &sa; 386 g_max_sa = &max_sa; 387 388 memcpy(g_max_sa, g_sa, sizeof(max_sa)); 389 390 g_config = &config; 391 392 if ( init_config() == -1 ) { 393 ROAR_ERR("Can not init default config!"); 394 return 1; 395 } 366 396 367 397 -
roard/sources.c
r1504 r1609 81 81 memcpy(&(s->info), g_sa, sizeof(struct roar_audio_info)); 82 82 83 s->dir = ROAR_DIR_PLAY; 83 if ( streams_set_dir(stream, ROAR_DIR_PLAY, 1) == -1 ) { 84 streams_delete(stream); 85 close(fh); 86 return -1; 87 } 88 84 89 s->pos_rel_id = -1; 85 90 … … 124 129 memcpy(&(s->info.bits ), buf+34, 2); 125 130 126 s->dir = ROAR_DIR_PLAY; 131 if ( streams_set_dir(stream, ROAR_DIR_PLAY, 1) == -1 ) { 132 streams_delete(stream); 133 close(fh); 134 return -1; 135 } 127 136 s->pos_rel_id = -1; 128 137 … … 154 163 memcpy(&(s->info), g_sa, sizeof(struct roar_audio_info)); 155 164 156 s->dir = ROAR_DIR_PLAY; 165 if ( streams_set_dir(stream, ROAR_DIR_PLAY, 1) == -1 ) { 166 streams_delete(stream); 167 return -1; 168 } 169 157 170 s->pos_rel_id = -1; 158 171 … … 238 251 memcpy(&(s->info), g_sa, sizeof(struct roar_audio_info)); 239 252 240 s->dir = ROAR_DIR_PLAY; 253 if ( streams_set_dir(stream, ROAR_DIR_PLAY, 1) == -1 ) { 254 streams_delete(stream); 255 close(fh); 256 return -1; 257 } 258 241 259 s->pos_rel_id = -1; 242 260 s->info.codec = codec; -
roard/streams.c
r1590 r1609 207 207 } 208 208 209 int streams_set_dir (int id, int dir, int defaults) { 210 struct roar_stream_server * ss; 211 212 if ( (ss = g_streams[id]) == NULL ) 213 return -1; 214 215 ROAR_STREAM(ss)->dir = dir; 216 217 if ( defaults ) { 218 if ( dir <= 0 || dir >= ROAR_DIR_DIRIDS ) 219 return -1; 220 221 if ( streams_set_flag(id, g_config->streams[dir].flags) == -1 ) 222 return -1; 223 224 ss->mixer.scale = g_config->streams[dir].mixer.scale; 225 ss->mixer.rpg_mul = g_config->streams[dir].mixer.rpg_mul; 226 ss->mixer.rpg_div = g_config->streams[dir].mixer.rpg_div; 227 } 228 229 return 0; 230 } 209 231 210 232 int streams_set_fh (int id, int fh) {
Note: See TracChangeset
for help on using the changeset viewer.