Support "eject" on OS X.
[maemo-rb.git] / rbutil / rbutilqt / base / encoderlame.h
bloba8651f0cdad6cd7d9afe4a8a6c4ea55b53471c01
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
9 * Copyright (C) 2012 Dominik Riebeling
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.
14 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
15 * KIND, either express or implied.
17 ****************************************************************************/
19 #ifndef ENCODERLAME_H
20 #define ENCODERLAME_H
22 #include <QtCore>
23 #include "encoderbase.h"
24 #include "lame/lame.h"
26 class EncoderLame : public EncoderBase
28 enum ESettings
30 LAMEVERSION,
31 VOLUME,
32 QUALITY,
35 Q_OBJECT
36 public:
37 EncoderLame(QObject *parent = NULL);
38 bool encode(QString input,QString output);
39 bool start();
40 bool stop() {return true;}
42 // for settings view
43 bool configOk();
44 void generateSettings();
45 void saveSettings();
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*);
66 bool m_symbolsResolved;
67 double m_encoderVolume;
68 double m_encoderQuality;
71 #endif