diff options
| author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2017-10-07 10:31:04 +0200 | 
|---|---|---|
| committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2017-10-07 10:31:04 +0200 | 
| commit | 68ee7799a4eeb4148cd4628113ebf9ea3f94a211 (patch) | |
| tree | 974962f0f9a2552b8a9665b18563e5e14602453e /src/FileInput.cpp | |
| parent | 39e95f67515f97030f4e4dee03abde33ce35a99a (diff) | |
| download | ODR-AudioEnc-68ee7799a4eeb4148cd4628113ebf9ea3f94a211.tar.gz ODR-AudioEnc-68ee7799a4eeb4148cd4628113ebf9ea3f94a211.tar.bz2 ODR-AudioEnc-68ee7799a4eeb4148cd4628113ebf9ea3f94a211.zip | |
Make all inputs use the same interface
Diffstat (limited to 'src/FileInput.cpp')
| -rw-r--r-- | src/FileInput.cpp | 68 | 
1 files changed, 33 insertions, 35 deletions
| diff --git a/src/FileInput.cpp b/src/FileInput.cpp index 1bad495..89e1dab 100644 --- a/src/FileInput.cpp +++ b/src/FileInput.cpp @@ -1,5 +1,5 @@  /* ------------------------------------------------------------------ - * Copyright (C) 2016 Matthias P. Braendli + * Copyright (C) 2017 Matthias P. Braendli   *   * Licensed under the Apache License, Version 2.0 (the "License");   * you may not use this file except in compliance with the License. @@ -20,17 +20,30 @@  #include "wavfile.h"  #include <cstring>  #include <cstdio> - +#include <stdexcept>  #include <stdint.h> -int FileInput::prepare(void) +using namespace std; + +FileInput::~FileInput() +{ +    if (m_raw_input and m_in_fh) { +        fclose(m_in_fh); +    } +    else if (m_wav) { +        wav_read_close(m_wav); +    } +} + +void FileInput::prepare(void)  { +    const char* fname = m_filename.c_str(); +      if (m_raw_input) { -        if (m_filename && strcmp(m_filename, "-")) { -            m_in_fh = fopen(m_filename, "rb"); +        if (fname && strcmp(fname, "-")) { +            m_in_fh = fopen(fname, "rb");              if (!m_in_fh) { -                fprintf(stderr, "Can't open input file!\n"); -                return 1; +                throw runtime_error("Can't open input file!");              }          }          else { @@ -43,37 +56,32 @@ int FileInput::prepare(void)          int wav_format = 0;          int sample_rate = 0; -        m_wav = wav_read_open(m_filename); +        m_wav = wav_read_open(fname);          if (!m_wav) { -            fprintf(stderr, "Unable to open wav file %s\n", m_filename); -            return 1; +            throw runtime_error("Unable to open wav file " + m_filename);          }          if (!wav_get_header(m_wav, &wav_format, &channels, &sample_rate, -                    &bits_per_sample, NULL)) { -            fprintf(stderr, "Bad wav file %s\n", m_filename); -            return 1; +                    &bits_per_sample, nullptr)) { +            throw runtime_error("Bad wav file" + m_filename);          }          if (wav_format != 1) { -            fprintf(stderr, "Unsupported WAV format %d\n", wav_format); -            return 1; +            throw runtime_error("Unsupported WAV format " + to_string(wav_format));          }          if (bits_per_sample != 16) { -            fprintf(stderr, "Unsupported WAV sample depth %d\n", bits_per_sample); -            return 1; +            throw runtime_error("Unsupported WAV sample depth " + +                    to_string(bits_per_sample));          }          if ( !(channels == 1 or channels == 2)) { -            fprintf(stderr, "Unsupported WAV channels %d\n", channels); -            return 1; +            throw runtime_error("Unsupported WAV channels " + to_string(channels));          }          if (m_sample_rate != sample_rate) { -            fprintf(stderr, -                    "WAV sample rate %d doesn't correspond to desired sample rate %d\n", -                    sample_rate, m_sample_rate); -            return 1; +            throw runtime_error( +                    "WAV sample rate " + +                    to_string(sample_rate) + +                    " doesn't correspond to desired sample rate " + +                    to_string(m_sample_rate));          }      } - -    return 0;  }  ssize_t FileInput::read(uint8_t* buf, size_t length) @@ -104,13 +112,3 @@ int FileInput::eof()  } -FileInput::~FileInput() -{ -    if (m_raw_input && m_in_fh) { -        fclose(m_in_fh); -    } -    else if (m_wav) { -        wav_read_close(m_wav); -    } -} - | 
