• Home
  • Raw
  • Download

Lines Matching refs:file

146 static int snd_pcm_file_replace_fname(snd_pcm_file_t *file, char **new_fname_p)  in snd_pcm_file_replace_fname()  argument
149 char *fname = file->fname; in snd_pcm_file_replace_fname()
154 snd_pcm_t *pcm = file->gen.slave; in snd_pcm_file_replace_fname()
225 static int snd_pcm_file_open_output_file(snd_pcm_file_t *file) in snd_pcm_file_open_output_file() argument
230 err = snd_pcm_file_replace_fname(file, &(file->final_fname)); in snd_pcm_file_open_output_file()
236 if (file->final_fname[0] == '|') { in snd_pcm_file_open_output_file()
240 pipe = popen(file->final_fname + 1, "w"); in snd_pcm_file_open_output_file()
243 file->final_fname); in snd_pcm_file_open_output_file()
247 file->pipe = pipe; in snd_pcm_file_open_output_file()
249 file->pipe = NULL; in snd_pcm_file_open_output_file()
250 if (file->trunc) in snd_pcm_file_open_output_file()
251 fd = open(file->final_fname, O_WRONLY|O_CREAT|O_TRUNC, in snd_pcm_file_open_output_file()
252 file->perm); in snd_pcm_file_open_output_file()
254 fd = open(file->final_fname, O_WRONLY|O_CREAT|O_EXCL, in snd_pcm_file_open_output_file()
255 file->perm); in snd_pcm_file_open_output_file()
259 len = strlen(file->final_fname) + 6; in snd_pcm_file_open_output_file()
265 "%s.%04d", file->final_fname, in snd_pcm_file_open_output_file()
269 file->perm); in snd_pcm_file_open_output_file()
271 free(file->final_fname); in snd_pcm_file_open_output_file()
272 file->final_fname = tmpfname; in snd_pcm_file_open_output_file()
278 file->final_fname); in snd_pcm_file_open_output_file()
285 file->fd = fd; in snd_pcm_file_open_output_file()
295 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_areas_read_infile() local
299 if (file->ifd < 0) in snd_pcm_file_areas_read_infile()
302 if (file->rbuf == NULL) in snd_pcm_file_areas_read_infile()
305 if (file->rbuf_size < frames) { in snd_pcm_file_areas_read_infile()
313 bytes = read(file->ifd, file->rbuf, bytes); in snd_pcm_file_areas_read_infile()
319 snd_pcm_areas_from_buf(pcm, areas_if, file->rbuf); in snd_pcm_file_areas_read_infile()
340 snd_pcm_file_t *file = pcm->private_data; in write_wav_header() local
355 setup_wav_header(pcm, &file->wav_header); in write_wav_header()
357 res = safe_write(file->fd, header, sizeof(header)); in write_wav_header()
361 res = safe_write(file->fd, &file->wav_header, sizeof(file->wav_header)); in write_wav_header()
362 if (res != sizeof(file->wav_header)) in write_wav_header()
365 res = safe_write(file->fd, header2, sizeof(header2)); in write_wav_header()
379 SYSERR("%s write header failed, file data may be corrupt", file->fname); in write_wav_header()
381 SNDERR("%s write header incomplete, file data may be corrupt", file->fname); in write_wav_header()
383 memset(&file->wav_header, 0, sizeof(struct wav_fmt)); in write_wav_header()
391 snd_pcm_file_t *file = pcm->private_data; in fixup_wav_header() local
395 if (lseek(file->fd, 4, SEEK_SET) == 4) { in fixup_wav_header()
396 len = (file->filelen + 0x24) > 0x7fffffff ? in fixup_wav_header()
397 0x7fffffff : (int)(file->filelen + 0x24); in fixup_wav_header()
399 ret = safe_write(file->fd, &len, 4); in fixup_wav_header()
404 if (lseek(file->fd, 0x28, SEEK_SET) == 0x28) { in fixup_wav_header()
405 len = file->filelen > 0x7fffffff ? in fixup_wav_header()
406 0x7fffffff : (int)file->filelen; in fixup_wav_header()
408 ret = safe_write(file->fd, &len, 4); in fixup_wav_header()
420 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_write_bytes() local
422 assert(bytes <= file->wbuf_used_bytes); in snd_pcm_file_write_bytes()
424 if (file->format == SND_PCM_FILE_FORMAT_WAV && in snd_pcm_file_write_bytes()
425 !file->wav_header.fmt) { in snd_pcm_file_write_bytes()
428 file->wbuf_used_bytes = 0; in snd_pcm_file_write_bytes()
429 file->file_ptr_bytes = 0; in snd_pcm_file_write_bytes()
436 size_t cont = file->wbuf_size_bytes - file->file_ptr_bytes; in snd_pcm_file_write_bytes()
439 err = safe_write(file->fd, file->wbuf + file->file_ptr_bytes, n); in snd_pcm_file_write_bytes()
441 file->wbuf_used_bytes = 0; in snd_pcm_file_write_bytes()
442 file->file_ptr_bytes = 0; in snd_pcm_file_write_bytes()
443 SYSERR("%s write failed, file data may be corrupt", file->fname); in snd_pcm_file_write_bytes()
447 file->wbuf_used_bytes -= err; in snd_pcm_file_write_bytes()
448 file->file_ptr_bytes += err; in snd_pcm_file_write_bytes()
449 if (file->file_ptr_bytes == file->wbuf_size_bytes) in snd_pcm_file_write_bytes()
450 file->file_ptr_bytes = 0; in snd_pcm_file_write_bytes()
451 file->filelen += err; in snd_pcm_file_write_bytes()
463 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_add_frames() local
467 snd_pcm_uframes_t cont = file->wbuf_size - file->appl_ptr; in snd_pcm_file_add_frames()
468 snd_pcm_uframes_t avail = file->wbuf_size - snd_pcm_bytes_to_frames(pcm, file->wbuf_used_bytes); in snd_pcm_file_add_frames()
473 snd_pcm_areas_copy(file->wbuf_areas, file->appl_ptr, in snd_pcm_file_add_frames()
478 file->appl_ptr += n; in snd_pcm_file_add_frames()
479 if (file->appl_ptr == file->wbuf_size) in snd_pcm_file_add_frames()
480 file->appl_ptr = 0; in snd_pcm_file_add_frames()
481 file->wbuf_used_bytes += snd_pcm_frames_to_bytes(pcm, n); in snd_pcm_file_add_frames()
482 if (file->wbuf_used_bytes > file->buffer_bytes) { in snd_pcm_file_add_frames()
483 err = snd_pcm_file_write_bytes(pcm, file->wbuf_used_bytes - file->buffer_bytes); in snd_pcm_file_add_frames()
487 assert(file->wbuf_used_bytes < file->wbuf_size_bytes); in snd_pcm_file_add_frames()
494 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_close() local
495 if (file->fname) { in snd_pcm_file_close()
496 if (file->wav_header.fmt) in snd_pcm_file_close()
498 free((void *)file->fname); in snd_pcm_file_close()
499 if (file->pipe) { in snd_pcm_file_close()
500 pclose(file->pipe); in snd_pcm_file_close()
501 } else if (file->fd >= 0) { in snd_pcm_file_close()
502 close(file->fd); in snd_pcm_file_close()
505 if (file->ifname) { in snd_pcm_file_close()
506 free((void *)file->ifname); in snd_pcm_file_close()
507 close(file->ifd); in snd_pcm_file_close()
514 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_reset() local
515 int err = snd_pcm_reset(file->gen.slave); in snd_pcm_file_reset()
518 snd_pcm_file_write_bytes(pcm, file->wbuf_used_bytes); in snd_pcm_file_reset()
519 assert(file->wbuf_used_bytes == 0); in snd_pcm_file_reset()
526 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_drop() local
527 int err = snd_pcm_drop(file->gen.slave); in snd_pcm_file_drop()
530 snd_pcm_file_write_bytes(pcm, file->wbuf_used_bytes); in snd_pcm_file_drop()
531 assert(file->wbuf_used_bytes == 0); in snd_pcm_file_drop()
539 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_drain() local
540 int err = snd_pcm_drain(file->gen.slave); in snd_pcm_file_drain()
543 snd_pcm_file_write_bytes(pcm, file->wbuf_used_bytes); in snd_pcm_file_drain()
544 assert(file->wbuf_used_bytes == 0); in snd_pcm_file_drain()
552 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_rewindable() local
553 snd_pcm_sframes_t res = snd_pcm_rewindable(file->gen.slave); in snd_pcm_file_rewindable()
554 snd_pcm_sframes_t n = snd_pcm_bytes_to_frames(pcm, file->wbuf_used_bytes); in snd_pcm_file_rewindable()
562 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_rewind() local
567 if (n > file->wbuf_used_bytes) in snd_pcm_file_rewind()
568 frames = snd_pcm_bytes_to_frames(pcm, file->wbuf_used_bytes); in snd_pcm_file_rewind()
569 err = snd_pcm_rewind(file->gen.slave, frames); in snd_pcm_file_rewind()
571 file->appl_ptr = (file->appl_ptr - err + file->wbuf_size) % file->wbuf_size; in snd_pcm_file_rewind()
573 file->wbuf_used_bytes -= n; in snd_pcm_file_rewind()
580 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_forwardable() local
581 snd_pcm_sframes_t res = snd_pcm_forwardable(file->gen.slave); in snd_pcm_file_forwardable()
582 snd_pcm_sframes_t n = snd_pcm_bytes_to_frames(pcm, file->wbuf_size_bytes - file->wbuf_used_bytes); in snd_pcm_file_forwardable()
590 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_forward() local
595 if (file->wbuf_used_bytes + n > file->wbuf_size_bytes) in snd_pcm_file_forward()
596 frames = snd_pcm_bytes_to_frames(pcm, file->wbuf_size_bytes - file->wbuf_used_bytes); in snd_pcm_file_forward()
597 err = INTERNAL(snd_pcm_forward)(file->gen.slave, frames); in snd_pcm_file_forward()
599 file->appl_ptr = (file->appl_ptr + err) % file->wbuf_size; in snd_pcm_file_forward()
601 file->wbuf_used_bytes += n; in snd_pcm_file_forward()
609 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_writei() local
611 snd_pcm_sframes_t n = _snd_pcm_writei(file->gen.slave, buffer, size); in snd_pcm_file_writei()
627 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_writen() local
629 snd_pcm_sframes_t n = _snd_pcm_writen(file->gen.slave, bufs, size); in snd_pcm_file_writen()
645 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_readi() local
649 frames = _snd_pcm_readi(file->gen.slave, buffer, size); in snd_pcm_file_readi()
669 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_readn() local
673 frames = _snd_pcm_readn(file->gen.slave, bufs, size); in snd_pcm_file_readn()
694 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_mmap_commit() local
700 file->ifmmap_overwritten = 0; in snd_pcm_file_mmap_commit()
702 result = snd_pcm_mmap_begin(file->gen.slave, &areas, &ofs, &siz); in snd_pcm_file_mmap_commit()
705 result = snd_pcm_mmap_commit(file->gen.slave, ofs, siz); in snd_pcm_file_mmap_commit()
717 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_mmap_begin() local
720 result = snd_pcm_mmap_begin(file->gen.slave, areas, offset, frames); in snd_pcm_file_mmap_begin()
728 if (file->ifmmap_overwritten) in snd_pcm_file_mmap_begin()
730 file->ifmmap_overwritten = 1; in snd_pcm_file_mmap_begin()
739 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_hw_free() local
740 free(file->wbuf); in snd_pcm_file_hw_free()
741 free(file->wbuf_areas); in snd_pcm_file_hw_free()
742 free(file->final_fname); in snd_pcm_file_hw_free()
743 free(file->rbuf); in snd_pcm_file_hw_free()
744 file->wbuf = NULL; in snd_pcm_file_hw_free()
745 file->wbuf_areas = NULL; in snd_pcm_file_hw_free()
746 file->final_fname = NULL; in snd_pcm_file_hw_free()
747 file->rbuf = NULL; in snd_pcm_file_hw_free()
748 return snd_pcm_hw_free(file->gen.slave); in snd_pcm_file_hw_free()
753 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_hw_params() local
755 snd_pcm_t *slave = file->gen.slave; in snd_pcm_file_hw_params()
759 file->buffer_bytes = snd_pcm_frames_to_bytes(slave, slave->buffer_size); in snd_pcm_file_hw_params()
760 file->wbuf_size = slave->buffer_size * 2; in snd_pcm_file_hw_params()
761 file->wbuf_size_bytes = snd_pcm_frames_to_bytes(slave, file->wbuf_size); in snd_pcm_file_hw_params()
762 file->wbuf_used_bytes = 0; in snd_pcm_file_hw_params()
763 file->ifmmap_overwritten = 0; in snd_pcm_file_hw_params()
764 assert(!file->wbuf); in snd_pcm_file_hw_params()
765 file->wbuf = malloc(file->wbuf_size_bytes); in snd_pcm_file_hw_params()
766 if (file->wbuf == NULL) { in snd_pcm_file_hw_params()
770 file->wbuf_areas = malloc(sizeof(*file->wbuf_areas) * slave->channels); in snd_pcm_file_hw_params()
771 if (file->wbuf_areas == NULL) { in snd_pcm_file_hw_params()
775 assert(!file->rbuf); in snd_pcm_file_hw_params()
776 file->rbuf_size = slave->buffer_size; in snd_pcm_file_hw_params()
777 file->rbuf_size_bytes = snd_pcm_frames_to_bytes(slave, file->rbuf_size); in snd_pcm_file_hw_params()
778 file->rbuf_used_bytes = 0; in snd_pcm_file_hw_params()
779 file->rbuf = malloc(file->rbuf_size_bytes); in snd_pcm_file_hw_params()
780 if (file->rbuf == NULL) { in snd_pcm_file_hw_params()
784 file->appl_ptr = file->file_ptr_bytes = 0; in snd_pcm_file_hw_params()
786 snd_pcm_channel_area_t *a = &file->wbuf_areas[channel]; in snd_pcm_file_hw_params()
787 a->addr = file->wbuf; in snd_pcm_file_hw_params()
791 if (file->fd < 0) { in snd_pcm_file_hw_params()
792 err = snd_pcm_file_open_output_file(file); in snd_pcm_file_hw_params()
794 SYSERR("failed opening output file %s", file->fname); in snd_pcm_file_hw_params()
800 snd_pcm_unlink_hw_ptr(pcm, file->gen.slave); in snd_pcm_file_hw_params()
801 snd_pcm_unlink_appl_ptr(pcm, file->gen.slave); in snd_pcm_file_hw_params()
803 snd_pcm_link_hw_ptr(pcm, file->gen.slave); in snd_pcm_file_hw_params()
804 snd_pcm_link_appl_ptr(pcm, file->gen.slave); in snd_pcm_file_hw_params()
811 snd_pcm_file_t *file = pcm->private_data; in snd_pcm_file_dump() local
812 if (file->fname) in snd_pcm_file_dump()
813 snd_output_printf(out, "File PCM (file=%s)\n", file->fname); in snd_pcm_file_dump()
815 snd_output_printf(out, "File PCM (fd=%d)\n", file->fd); in snd_pcm_file_dump()
816 if (file->final_fname) in snd_pcm_file_dump()
818 file->final_fname); in snd_pcm_file_dump()
825 snd_pcm_dump(file->gen.slave, out); in snd_pcm_file_dump()
905 snd_pcm_file_t *file; in snd_pcm_file_open() local
920 file = calloc(1, sizeof(snd_pcm_file_t)); in snd_pcm_file_open()
921 if (!file) { in snd_pcm_file_open()
928 file->fname = strdup(fname); in snd_pcm_file_open()
929 file->trunc = trunc; in snd_pcm_file_open()
930 file->perm = perm; in snd_pcm_file_open()
936 free(file->fname); in snd_pcm_file_open()
937 free(file); in snd_pcm_file_open()
940 file->ifname = strdup(ifname); in snd_pcm_file_open()
942 file->fd = fd; in snd_pcm_file_open()
943 file->ifd = ifd; in snd_pcm_file_open()
944 file->format = format; in snd_pcm_file_open()
945 file->gen.slave = slave; in snd_pcm_file_open()
946 file->gen.close_slave = close_slave; in snd_pcm_file_open()
950 free(file->fname); in snd_pcm_file_open()
951 free(file->ifname); in snd_pcm_file_open()
952 free(file); in snd_pcm_file_open()
957 pcm->private_data = file; in snd_pcm_file_open()