Issue #105 - Make Work with Named Pipe (FIFO)

This commit is contained in:
lwvmobile 2023-03-22 20:03:39 -04:00
parent c8e8e041b7
commit f3c0199b32
1 changed files with 20 additions and 1 deletions

View File

@ -542,7 +542,7 @@ openAudioInDevice (dsd_opts * opts)
extension = strrchr(opts->audio_in_dev, ch); //return extension if this is a .wav or .bin file extension = strrchr(opts->audio_in_dev, ch); //return extension if this is a .wav or .bin file
//if no extension set, give default of .wav -- bugfix for github issue #105 //if no extension set, give default of .wav -- bugfix for github issue #105
if (extension == NULL) extension = ".wav"; // if (extension == NULL) extension = ".wav";
// get info of device/file // get info of device/file
if (strncmp(opts->audio_in_dev, "-", 1) == 0) if (strncmp(opts->audio_in_dev, "-", 1) == 0)
@ -601,6 +601,25 @@ openAudioInDevice (dsd_opts * opts)
{ {
opts->audio_in_type = 0; opts->audio_in_type = 0;
} }
//if no extension set, treat as named pipe or extensionless wav file -- bugfix for github issue #105
else if (extension == NULL)
{
opts->audio_in_type = 2;
opts->audio_in_file_info = calloc(1, sizeof(SF_INFO));
opts->audio_in_file_info->samplerate = opts->wav_sample_rate;
opts->audio_in_file_info->channels = 1;
opts->audio_in_file_info->seekable = 0;
opts->audio_in_file_info->format = SF_FORMAT_RAW | SF_FORMAT_PCM_16 | SF_ENDIAN_LITTLE;
opts->audio_in_file = sf_open(opts->audio_in_dev, SFM_READ, opts->audio_in_file_info);
if (opts->audio_in_file == NULL)
{
fprintf(stderr, "Error, couldn't open file/pipe with libsndfile: %s\n", sf_strerror(NULL));
exit(1);
}
}
else if (strncmp(extension, ".bin", 3) == 0) else if (strncmp(extension, ".bin", 3) == 0)
{ {
struct stat stat_buf; struct stat stat_buf;