• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/iserver/alsa-lib-1.0.26/src/pcm/

Lines Matching refs:meter

78 	snd_pcm_meter_t *meter = pcm->private_data;
81 snd_pcm_uframes_t dst_offset = ptr % meter->buf_size;
83 snd_pcm_uframes_t dst_cont = meter->buf_size - dst_offset;
89 snd_pcm_areas_copy(meter->buf_areas, dst_offset,
101 snd_pcm_meter_t *meter = pcm->private_data;
106 locked = (pthread_mutex_trylock(&meter->update_mutex) >= 0);
109 old_rptr = meter->rptr;
110 meter->rptr = rptr;
120 pthread_mutex_unlock(&meter->update_mutex);
125 snd_pcm_meter_t *meter = pcm->private_data;
131 pthread_mutex_lock(&meter->update_mutex);
135 old_rptr = meter->rptr;
137 if (atomic_read(&meter->reset)) {
139 atomic_dec(&meter->reset);
142 meter->rptr = rptr;
151 pthread_mutex_unlock(&meter->update_mutex);
184 snd_pcm_meter_t *meter = pcm->private_data;
185 snd_pcm_t *spcm = meter->gen.slave;
189 list_for_each(pos, &meter->scopes) {
193 while (!meter->closed) {
197 pthread_mutex_lock(&meter->running_mutex);
203 if (meter->running) {
204 list_for_each(pos, &meter->scopes) {
208 meter->running = 0;
210 pthread_cond_wait(&meter->running_cond,
211 &meter->running_mutex);
212 pthread_mutex_unlock(&meter->running_mutex);
215 pthread_mutex_unlock(&meter->running_mutex);
225 meter->now = now;
230 while (atomic_read(&meter->reset)) {
232 atomic_dec(&meter->reset);
236 list_for_each(pos, &meter->scopes) {
243 if (!meter->running) {
244 list_for_each(pos, &meter->scopes) {
249 meter->running = 1;
251 list_for_each(pos, &meter->scopes) {
256 nanosleep(&meter->delay, NULL);
258 list_for_each(pos, &meter->scopes) {
268 snd_pcm_meter_t *meter = pcm->private_data;
271 pthread_mutex_destroy(&meter->update_mutex);
272 pthread_mutex_destroy(&meter->running_mutex);
273 pthread_cond_destroy(&meter->running_cond);
274 if (meter->gen.close_slave)
275 err = snd_pcm_close(meter->gen.slave);
276 list_for_each_safe(pos, npos, &meter->scopes) {
281 if (meter->dl_handle)
282 snd_dlclose(meter->dl_handle);
283 free(meter);
289 snd_pcm_meter_t *meter = pcm->private_data;
291 atomic_inc(&meter->reset);
292 err = snd_pcm_prepare(meter->gen.slave);
295 meter->rptr = *pcm->appl.ptr;
297 meter->rptr = *pcm->hw.ptr;
304 snd_pcm_meter_t *meter = pcm->private_data;
305 int err = snd_pcm_reset(meter->gen.slave);
308 meter->rptr = *pcm->appl.ptr;
315 snd_pcm_meter_t *meter = pcm->private_data;
317 pthread_mutex_lock(&meter->running_mutex);
318 err = snd_pcm_start(meter->gen.slave);
320 pthread_cond_signal(&meter->running_cond);
321 pthread_mutex_unlock(&meter->running_mutex);
327 snd_pcm_meter_t *meter = pcm->private_data;
328 snd_pcm_sframes_t err = snd_pcm_rewind(meter->gen.slave, frames);
330 meter->rptr = *pcm->appl.ptr;
336 snd_pcm_meter_t *meter = pcm->private_data;
337 snd_pcm_sframes_t err = INTERNAL(snd_pcm_forward)(meter->gen.slave, frames);
339 meter->rptr = *pcm->appl.ptr;
347 snd_pcm_meter_t *meter = pcm->private_data;
349 snd_pcm_sframes_t result = snd_pcm_mmap_commit(meter->gen.slave, offset, size);
354 meter->rptr = *pcm->appl.ptr;
361 snd_pcm_meter_t *meter = pcm->private_data;
362 snd_pcm_sframes_t result = snd_pcm_avail_update(meter->gen.slave);
415 snd_pcm_meter_t *meter = pcm->private_data;
416 return snd_pcm_hw_refine(meter->gen.slave, params);
421 snd_pcm_meter_t *meter = pcm->private_data;
422 return _snd_pcm_hw_params(meter->gen.slave, params);
437 snd_pcm_meter_t *meter = pcm->private_data;
439 snd_pcm_t *slave = meter->gen.slave;
450 meter->buf_size = slave->buffer_size;
451 while (meter->buf_size < slave->rate)
452 meter->buf_size *= 2;
453 buf_size_bytes = snd_pcm_frames_to_bytes(slave, meter->buf_size);
454 assert(!meter->buf);
455 meter->buf = malloc(buf_size_bytes);
456 if (!meter->buf)
458 meter->buf_areas = malloc(sizeof(*meter->buf_areas) * slave->channels);
459 if (!meter->buf_areas) {
460 free(meter->buf);
464 snd_pcm_channel_area_t *a = &meter->buf_areas[channel];
465 a->addr = meter->buf + buf_size_bytes / slave->channels * channel;
469 meter->closed = 0;
470 err = pthread_create(&meter->thread, NULL, snd_pcm_meter_thread, pcm);
477 snd_pcm_meter_t *meter = pcm->private_data;
479 meter->closed = 1;
480 pthread_mutex_lock(&meter->running_mutex);
481 pthread_cond_signal(&meter->running_cond);
482 pthread_mutex_unlock(&meter->running_mutex);
483 err = pthread_join(meter->thread, 0);
485 free(meter->buf);
486 free(meter->buf_areas);
487 meter->buf = NULL;
488 meter->buf_areas = NULL;
489 return snd_pcm_hw_free(meter->gen.slave);
494 snd_pcm_meter_t *meter = pcm->private_data;
501 snd_pcm_dump(meter->gen.slave, out);
563 snd_pcm_meter_t *meter;
566 meter = calloc(1, sizeof(snd_pcm_meter_t));
567 if (!meter)
569 meter->gen.slave = slave;
570 meter->gen.close_slave = close_slave;
571 meter->delay.tv_sec = 0;
572 meter->delay.tv_nsec = 1000000000 / frequency;
573 INIT_LIST_HEAD(&meter->scopes);
577 free(meter);
584 pcm->private_data = meter;
592 pthread_mutex_init(&meter->update_mutex, NULL);
593 pthread_mutex_init(&meter->running_mutex, NULL);
594 pthread_cond_init(&meter->running_cond, NULL);
609 snd_pcm_meter_t *meter = pcm->private_data;
686 meter->dl_handle = h;
695 Show meter (visual waveform representation).
709 type meter # Meter PCM
840 snd_pcm_meter_t *meter;
842 meter = pcm->private_data;
843 list_add_tail(&scope->list, &meter->scopes);
855 snd_pcm_meter_t *meter;
858 meter = pcm->private_data;
859 list_for_each(pos, &meter->scopes) {
869 * \brief Get meter buffer size from a #SND_PCM_TYPE_METER PCM
871 * \return meter buffer size in frames
875 snd_pcm_meter_t *meter;
877 meter = pcm->private_data;
878 assert(meter->gen.slave->setup);
879 return meter->buf_size;
883 * \brief Get meter channels from a #SND_PCM_TYPE_METER PCM
885 * \return meter channels count
889 snd_pcm_meter_t *meter;
891 meter = pcm->private_data;
892 assert(meter->gen.slave->setup);
893 return meter->gen.slave->channels;
897 * \brief Get meter rate from a #SND_PCM_TYPE_METER PCM
903 snd_pcm_meter_t *meter;
905 meter = pcm->private_data;
906 assert(meter->gen.slave->setup);
907 return meter->gen.slave->rate;
911 * \brief Get meter "now" frame pointer from a #SND_PCM_TYPE_METER PCM
917 snd_pcm_meter_t *meter;
919 meter = pcm->private_data;
920 assert(meter->gen.slave->setup);
921 return meter->now;
931 snd_pcm_meter_t *meter;
933 meter = pcm->private_data;
934 assert(meter->gen.slave->setup);
935 return meter->gen.slave->boundary;
940 * \param scope PCM meter scope
950 * \param scope PCM meter scope
960 * \param scope PCM meter scope
970 * \param scope PCM meter scope
980 * \param scope PCM meter scope
1001 snd_pcm_meter_t *meter = s16->pcm->private_data;
1002 snd_pcm_t *spcm = meter->gen.slave;
1008 s16->buf = (int16_t *) meter->buf;
1042 s16->buf = malloc(meter->buf_size * 2 * spcm->channels);
1055 a->addr = s16->buf + c * meter->buf_size;
1090 snd_pcm_meter_t *meter = s16->pcm->private_data;
1091 snd_pcm_t *spcm = meter->gen.slave;
1094 size = meter->now - s16->old;
1097 offset = s16->old % meter->buf_size;
1100 snd_pcm_uframes_t cont = meter->buf_size - offset;
1106 meter->buf_areas, offset,
1112 meter->buf_areas, offset,
1118 meter->buf_areas, offset,
1125 meter->buf_areas, offset,
1136 s16->old = meter->now;
1142 snd_pcm_meter_t *meter = s16->pcm->private_data;
1143 s16->old = meter->now;
1172 snd_pcm_meter_t *meter;
1176 meter = pcm->private_data;
1190 list_add_tail(&scope->list, &meter->scopes);
1205 snd_pcm_meter_t *meter;
1208 meter = s16->pcm->private_data;
1209 assert(meter->gen.slave->setup);
1211 assert(channel < meter->gen.slave->channels);