added support for exporting WAVE-files with 32-bit-float format
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1186 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
@@ -42,6 +42,7 @@ public:
|
||||
const bitrate_t _nom_bitrate,
|
||||
const bitrate_t _min_bitrate,
|
||||
const bitrate_t _max_bitrate,
|
||||
const int _depth,
|
||||
mixer * _mixer );
|
||||
virtual ~audioFileDevice();
|
||||
|
||||
@@ -75,6 +76,11 @@ protected:
|
||||
return( m_maxBitrate );
|
||||
}
|
||||
|
||||
inline int depth( void ) const
|
||||
{
|
||||
return( m_depth );
|
||||
}
|
||||
|
||||
inline bool outputFileOpened( void ) const
|
||||
{
|
||||
return( m_outputFile.isOpen() );
|
||||
@@ -90,6 +96,8 @@ private:
|
||||
bitrate_t m_minBitrate;
|
||||
bitrate_t m_maxBitrate;
|
||||
|
||||
int m_depth;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -102,6 +110,7 @@ typedef audioFileDevice * ( * audioFileDeviceInstantiaton )
|
||||
const bitrate_t _nom_bitrate,
|
||||
const bitrate_t _min_bitrate,
|
||||
const bitrate_t _max_bitrate,
|
||||
const int _depth,
|
||||
mixer * _mixer );
|
||||
|
||||
|
||||
|
||||
@@ -48,6 +48,7 @@ public:
|
||||
const bitrate_t _nom_bitrate,
|
||||
const bitrate_t _min_bitrate,
|
||||
const bitrate_t _max_bitrate,
|
||||
const int _depth,
|
||||
mixer * _mixer );
|
||||
virtual ~audioFileOgg();
|
||||
|
||||
@@ -59,12 +60,13 @@ public:
|
||||
const bitrate_t _nom_bitrate,
|
||||
const bitrate_t _min_bitrate,
|
||||
const bitrate_t _max_bitrate,
|
||||
const int _depth,
|
||||
mixer * _mixer )
|
||||
{
|
||||
return( new audioFileOgg( _sample_rate, _channels, _success_ful,
|
||||
_file, _use_vbr, _nom_bitrate,
|
||||
_min_bitrate, _max_bitrate,
|
||||
_mixer ) );
|
||||
_depth, _mixer ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* audio_file_wave.h - Audio-device which encodes wave-stream and writes it
|
||||
* into an WAVE-file. This is used for song-export.
|
||||
*
|
||||
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -28,8 +28,12 @@
|
||||
#define _AUDIO_FILE_WAVE_H
|
||||
|
||||
|
||||
#include "lmmsconfig.h"
|
||||
#include "audio_file_device.h"
|
||||
|
||||
#ifdef LMMS_HAVE_SNDFILE_H
|
||||
#include <sndfile.h>
|
||||
#endif
|
||||
|
||||
|
||||
class audioFileWave : public audioFileDevice
|
||||
@@ -43,6 +47,7 @@ public:
|
||||
const bitrate_t _nom_bitrate,
|
||||
const bitrate_t _min_bitrate,
|
||||
const bitrate_t _max_bitrate,
|
||||
const int _depth,
|
||||
mixer * _mixer );
|
||||
virtual ~audioFileWave();
|
||||
|
||||
@@ -54,12 +59,13 @@ public:
|
||||
const bitrate_t _nom_bitrate,
|
||||
const bitrate_t _min_bitrate,
|
||||
const bitrate_t _max_bitrate,
|
||||
const int _depth,
|
||||
mixer * _mixer )
|
||||
{
|
||||
return( new audioFileWave( _sample_rate, _channels,
|
||||
_success_ful, _file, _use_vbr,
|
||||
_nom_bitrate, _min_bitrate,
|
||||
_max_bitrate,
|
||||
_max_bitrate, _depth,
|
||||
_mixer ) );
|
||||
}
|
||||
|
||||
@@ -73,6 +79,10 @@ private:
|
||||
void finishEncoding( void );
|
||||
|
||||
|
||||
#if LMMS_HAVE_SNDFILE_H
|
||||
SF_INFO m_si;
|
||||
SNDFILE * m_sf;
|
||||
#else
|
||||
int m_bytesWritten;
|
||||
|
||||
struct waveFileHeader
|
||||
@@ -91,6 +101,7 @@ private:
|
||||
char data_chunk_id[4]; // "data"
|
||||
Uint32 data_bytes; // total size of sample-data
|
||||
} m_waveFileHeader;
|
||||
#endif
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -42,15 +42,26 @@ public:
|
||||
NumFileFormats
|
||||
} ;
|
||||
|
||||
enum Depths
|
||||
{
|
||||
Depth_16Bit,
|
||||
Depth_32Bit,
|
||||
NumDepths
|
||||
} ;
|
||||
|
||||
struct outputSettings
|
||||
{
|
||||
sample_rate_t samplerate;
|
||||
bool vbr;
|
||||
int bitrate;
|
||||
outputSettings( sample_rate_t _sr, bool _vbr, int _bitrate ) :
|
||||
Depths depth;
|
||||
|
||||
outputSettings( sample_rate_t _sr, bool _vbr, int _bitrate,
|
||||
Depths _d ) :
|
||||
samplerate( _sr ),
|
||||
vbr( _vbr ),
|
||||
bitrate( _bitrate )
|
||||
bitrate( _bitrate ),
|
||||
depth( _d )
|
||||
{
|
||||
}
|
||||
} ;
|
||||
|
||||
Reference in New Issue
Block a user