comparison libaf/af_export.c @ 11529:2f30dad6f490

minor fixes by ed@catmur.co.uk
author alex
date Fri, 28 Nov 2003 20:43:00 +0000
parents dcca52fe32bd
children 815f03b7cee5
comparison
equal deleted inserted replaced
11528:663a2771d5bc 11529:2f30dad6f490
67 munmap(s->mmap_area, SIZE_HEADER + (af->data->bps*s->sz*af->data->nch)); 67 munmap(s->mmap_area, SIZE_HEADER + (af->data->bps*s->sz*af->data->nch));
68 // close previous file descriptor 68 // close previous file descriptor
69 if(s->fd) 69 if(s->fd)
70 close(s->fd); 70 close(s->fd);
71 71
72 // Accept only int16_t as input fomat (which sucks) 72 // Accept only int16_t as input format (which sucks)
73 af->data->rate = ((af_data_t*)arg)->rate; 73 af->data->rate = ((af_data_t*)arg)->rate;
74 af->data->nch = ((af_data_t*)arg)->nch; 74 af->data->nch = ((af_data_t*)arg)->nch;
75 af->data->format = AF_FORMAT_SI | AF_FORMAT_NE; 75 af->data->format = AF_FORMAT_SI | AF_FORMAT_NE;
76 af->data->bps = 2; 76 af->data->bps = 2;
77 77
78 // If buffer length isn't set, set it to the default value 78 // If buffer length isn't set, set it to the default value
79 if(s->sz == 0) 79 if(s->sz == 0)
80 s->sz = DEF_SZ; 80 s->sz = DEF_SZ;
81 81
82 // Allocate new buffers (as one continous block) 82 // Allocate new buffers (as one continuous block)
83 s->buf[0] = calloc(DEF_SZ*af->data->nch, af->data->bps); 83 s->buf[0] = calloc(s->sz*af->data->nch, af->data->bps);
84 if(NULL == s->buf[0]) 84 if(NULL == s->buf[0])
85 af_msg(AF_MSG_FATAL, "[export] Out of memory\n"); 85 af_msg(AF_MSG_FATAL, "[export] Out of memory\n");
86 for(i = 1; i < af->data->nch; i++) 86 for(i = 1; i < af->data->nch; i++)
87 s->buf[i] = s->buf[0] + i*DEF_SZ*af->data->bps; 87 s->buf[i] = s->buf[0] + i*s->sz*af->data->bps;
88 88
89 // Init memory mapping 89 // Init memory mapping
90 s->fd = open(s->filename, O_RDWR | O_CREAT | O_TRUNC, 0640); 90 s->fd = open(s->filename, O_RDWR | O_CREAT | O_TRUNC, 0640);
91 af_msg(AF_MSG_INFO, "[export] Exporting to file: %s\n", s->filename); 91 af_msg(AF_MSG_INFO, "[export] Exporting to file: %s\n", s->filename);
92 if(s->fd < 0) 92 if(s->fd < 0)
137 137
138 s->filename = calloc(i + 1, sizeof(char)); 138 s->filename = calloc(i + 1, sizeof(char));
139 memcpy(s->filename, str, i); 139 memcpy(s->filename, str, i);
140 s->filename[i] = 0; 140 s->filename[i] = 0;
141 141
142 sscanf(str + i, "%d", &(s->sz)); 142 sscanf(str + i + 1, "%d", &(s->sz));
143 143
144 return af->control(af, AF_CONTROL_EXPORT_SZ | AF_CONTROL_SET, &s->sz); 144 return af->control(af, AF_CONTROL_EXPORT_SZ | AF_CONTROL_SET, &s->sz);
145 } 145 }
146 case AF_CONTROL_EXPORT_SZ | AF_CONTROL_SET: 146 case AF_CONTROL_EXPORT_SZ | AF_CONTROL_SET:
147 s->sz = * (int *) arg; 147 s->sz = * (int *) arg;