summaryrefslogtreecommitdiffstats
path: root/src/encoder/encodersndfileflac.h
blob: 9ecc3b850ce57f1799be07383f9b824361942c4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
* @file encodersndfileflac.h
* @author Josep Maria Antolín
* @date Feb 27 2017
* @brief encoder for flac using libsndfile
*/


#ifndef ENCODERSNDFILEFLAC_H
#define ENCODERSNDFILEFLAC_H


#include "encoder/encoderflacsettings.h"
#ifdef Q_OS_WIN
//Enable unicode in libsndfile on Windows
//(sf_open uses UTF-8 otherwise)
#include <windows.h>
#define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1
#endif
#include <sndfile.h>

#include "util/types.h"
#include "encoder/encoderwave.h"

class EncoderCallback;

class EncoderSndfileFlac : public EncoderWave {
  public:
    EncoderSndfileFlac(EncoderCallback* pCallback = nullptr);
    ~EncoderSndfileFlac() override = default;

    void setEncoderSettings(const EncoderSettings& settings) override;

  protected:
    void initStream() override;
  private:
    double m_compression;
};

#endif //ENCODERWAVE_H