summaryrefslogtreecommitdiff
path: root/utils/rbutilqt/base/encoderlame.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/rbutilqt/base/encoderlame.h')
-rw-r--r--utils/rbutilqt/base/encoderlame.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/utils/rbutilqt/base/encoderlame.h b/utils/rbutilqt/base/encoderlame.h
new file mode 100644
index 0000000000..a5f1b2d3f4
--- /dev/null
+++ b/utils/rbutilqt/base/encoderlame.h
@@ -0,0 +1,72 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 *
9 * Copyright (C) 2012 Dominik Riebeling
10 *
11 * All files in this archive are subject to the GNU General Public License.
12 * See the file COPYING in the source tree root for full license agreement.
13 *
14 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
15 * KIND, either express or implied.
16 *
17 ****************************************************************************/
18
19#ifndef ENCODERLAME_H
20#define ENCODERLAME_H
21
22#include <QtCore>
23#include "encoderbase.h"
24#include "lame/lame.h"
25
26class EncoderLame : public EncoderBase
27{
28 enum ESettings
29 {
30 LAMEVERSION,
31 VOLUME,
32 QUALITY,
33 };
34
35 Q_OBJECT
36 public:
37 EncoderLame(QObject *parent = nullptr);
38 bool encode(QString input,QString output);
39 bool start();
40 bool stop() {return true;}
41
42 // for settings view
43 bool configOk();
44 void generateSettings();
45 void saveSettings();
46
47 private:
48 QLibrary lib;
49 const char*(*m_get_lame_short_version)(void);
50 int (*m_lame_set_out_samplerate)(lame_global_flags*, int);
51 int (*m_lame_set_in_samplerate)(lame_global_flags*, int);
52 int (*m_lame_set_num_channels)(lame_global_flags*, int);
53 int (*m_lame_set_scale)(lame_global_flags*, float);
54 int (*m_lame_set_mode)(lame_global_flags*, MPEG_mode);
55 int (*m_lame_set_VBR)(lame_global_flags*, vbr_mode);
56 int (*m_lame_set_VBR_quality)(lame_global_flags*, float);
57 int (*m_lame_set_VBR_max_bitrate_kbps)(lame_global_flags*, int);
58 int (*m_lame_set_bWriteVbrTag)(lame_global_flags*, int);
59 lame_global_flags*(*m_lame_init)(void);
60 int (*m_lame_init_params)(lame_global_flags*);
61 int (*m_lame_encode_buffer)(lame_global_flags*, short int[], short
62 int[], int, unsigned char*, int);
63 int (*m_lame_encode_flush)(lame_global_flags*, unsigned char*, int);
64 int (*m_lame_close)(lame_global_flags*);
65
66 bool m_symbolsResolved;
67 double m_encoderVolume;
68 double m_encoderQuality;
69};
70
71#endif
72