summaryrefslogtreecommitdiff
path: root/src/libOggFLAC++/file_encoder.cpp
diff options
context:
space:
mode:
authorJosh Coalson <jcoalson@users.sourceforce.net>2006-09-13 01:42:27 +0000
committerJosh Coalson <jcoalson@users.sourceforce.net>2006-09-13 01:42:27 +0000
commit6b21f66784e1bcbe075b405668712e85eac39414 (patch)
treecd1dcbb7cfd5041532ff7ba73b907c7e3af6a80d /src/libOggFLAC++/file_encoder.cpp
parent461f3eb260107f60c4d7da1774075d09e5374d14 (diff)
downloadflac-6b21f66784e1bcbe075b405668712e85eac39414.tar.gz
merge down from merged-API-layer branch: cvs -q up -dP -j API_LAYER_MERGING_BASELINE -j API_LAYER_MERGING_BRANCH
Diffstat (limited to 'src/libOggFLAC++/file_encoder.cpp')
-rw-r--r--src/libOggFLAC++/file_encoder.cpp298
1 files changed, 17 insertions, 281 deletions
diff --git a/src/libOggFLAC++/file_encoder.cpp b/src/libOggFLAC++/file_encoder.cpp
index ee921c06..1f23d7d4 100644
--- a/src/libOggFLAC++/file_encoder.cpp
+++ b/src/libOggFLAC++/file_encoder.cpp
@@ -41,304 +41,40 @@ namespace OggFLAC {
namespace Encoder {
File::File():
- encoder_(::OggFLAC__file_encoder_new())
+ Stream()
{ }
File::~File()
{
- if(0 != encoder_) {
- ::OggFLAC__file_encoder_finish(encoder_);
- ::OggFLAC__file_encoder_delete(encoder_);
- }
}
- bool File::set_serial_number(long value)
+ ::FLAC__StreamEncoderInitStatus File::init(FILE *file)
{
FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_serial_number(encoder_, value);
+ return ::OggFLAC__stream_encoder_init_FILE(encoder_, file, progress_callback_, /*client_data=*/(void*)this);
}
- bool File::is_valid() const
- {
- return 0 != encoder_;
- }
-
- bool File::set_verify(bool value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_verify(encoder_, value);
- }
-
- bool File::set_streamable_subset(bool value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_streamable_subset(encoder_, value);
- }
-
- bool File::set_do_mid_side_stereo(bool value)
+ ::FLAC__StreamEncoderInitStatus File::init(const char *filename)
{
FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_do_mid_side_stereo(encoder_, value);
+ return ::OggFLAC__stream_encoder_init_file(encoder_, filename, progress_callback_, /*client_data=*/(void*)this);
}
- bool File::set_loose_mid_side_stereo(bool value)
+ ::FLAC__StreamEncoderInitStatus File::init(const std::string &filename)
{
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_loose_mid_side_stereo(encoder_, value);
+ return init(filename.c_str());
}
- bool File::set_channels(unsigned value)
+ // This is a dummy to satisfy the pure virtual from Stream; the
+ // read callback will never be called since we are initializing
+ // with OggFLAC__stream_decoder_init_FILE() or
+ // OggFLAC__stream_decoder_init_file() and those supply the read
+ // callback internally.
+ ::FLAC__StreamEncoderWriteStatus File::write_callback(const FLAC__byte buffer[], unsigned bytes, unsigned samples, unsigned current_frame)
{
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_channels(encoder_, value);
- }
-
- bool File::set_bits_per_sample(unsigned value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_bits_per_sample(encoder_, value);
- }
-
- bool File::set_sample_rate(unsigned value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_sample_rate(encoder_, value);
- }
-
- bool File::set_blocksize(unsigned value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_blocksize(encoder_, value);
- }
-
- bool File::set_apodization(const char *specification)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_apodization(encoder_, specification);
- }
-
- bool File::set_max_lpc_order(unsigned value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_max_lpc_order(encoder_, value);
- }
-
- bool File::set_qlp_coeff_precision(unsigned value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_qlp_coeff_precision(encoder_, value);
- }
-
- bool File::set_do_qlp_coeff_prec_search(bool value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_do_qlp_coeff_prec_search(encoder_, value);
- }
-
- bool File::set_do_escape_coding(bool value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_do_escape_coding(encoder_, value);
- }
-
- bool File::set_do_exhaustive_model_search(bool value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_do_exhaustive_model_search(encoder_, value);
- }
-
- bool File::set_min_residual_partition_order(unsigned value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_min_residual_partition_order(encoder_, value);
- }
-
- bool File::set_max_residual_partition_order(unsigned value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_max_residual_partition_order(encoder_, value);
- }
-
- bool File::set_rice_parameter_search_dist(unsigned value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_rice_parameter_search_dist(encoder_, value);
- }
-
- bool File::set_total_samples_estimate(FLAC__uint64 value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_total_samples_estimate(encoder_, value);
- }
-
- bool File::set_metadata(::FLAC__StreamMetadata **metadata, unsigned num_blocks)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_metadata(encoder_, metadata, num_blocks);
- }
-
- bool File::set_filename(const char *value)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_set_filename(encoder_, value);
- }
-
- File::State File::get_state() const
- {
- FLAC__ASSERT(is_valid());
- return State(::OggFLAC__file_encoder_get_state(encoder_));
- }
-
- SeekableStream::State File::get_seekable_stream_encoder_state() const
- {
- FLAC__ASSERT(is_valid());
- return SeekableStream::State(::OggFLAC__file_encoder_get_seekable_stream_encoder_state(encoder_));
- }
-
- FLAC::Encoder::Stream::State File::get_FLAC_stream_encoder_state() const
- {
- FLAC__ASSERT(is_valid());
- return FLAC::Encoder::Stream::State(::OggFLAC__file_encoder_get_FLAC_stream_encoder_state(encoder_));
- }
-
- FLAC::Decoder::Stream::State File::get_verify_decoder_state() const
- {
- FLAC__ASSERT(is_valid());
- return FLAC::Decoder::Stream::State(::OggFLAC__file_encoder_get_verify_decoder_state(encoder_));
- }
-
- void File::get_verify_decoder_error_stats(FLAC__uint64 *absolute_sample, unsigned *frame_number, unsigned *channel, unsigned *sample, FLAC__int32 *expected, FLAC__int32 *got)
- {
- FLAC__ASSERT(is_valid());
- ::OggFLAC__file_encoder_get_verify_decoder_error_stats(encoder_, absolute_sample, frame_number, channel, sample, expected, got);
- }
-
- bool File::get_verify() const
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_get_verify(encoder_);
- }
-
- bool File::get_streamable_subset() const
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_get_streamable_subset(encoder_);
- }
-
- bool File::get_do_mid_side_stereo() const
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_get_do_mid_side_stereo(encoder_);
- }
-
- bool File::get_loose_mid_side_stereo() const
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_get_loose_mid_side_stereo(encoder_);
- }
-
- unsigned File::get_channels() const
- {
- FLAC__ASSERT(is_valid());
- return ::OggFLAC__file_encoder_get_channels(encoder_);
- }
-
- unsigned File::get_bits_per_sample() const
- {
- FLAC__ASSERT(is_valid());
- return ::OggFLAC__file_encoder_get_bits_per_sample(encoder_);
- }
-
- unsigned File::get_sample_rate() const
- {
- FLAC__ASSERT(is_valid());
- return ::OggFLAC__file_encoder_get_sample_rate(encoder_);
- }
-
- unsigned File::get_blocksize() const
- {
- FLAC__ASSERT(is_valid());
- return ::OggFLAC__file_encoder_get_blocksize(encoder_);
- }
-
- unsigned File::get_max_lpc_order() const
- {
- FLAC__ASSERT(is_valid());
- return ::OggFLAC__file_encoder_get_max_lpc_order(encoder_);
- }
-
- unsigned File::get_qlp_coeff_precision() const
- {
- FLAC__ASSERT(is_valid());
- return ::OggFLAC__file_encoder_get_qlp_coeff_precision(encoder_);
- }
-
- bool File::get_do_qlp_coeff_prec_search() const
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_get_do_qlp_coeff_prec_search(encoder_);
- }
-
- bool File::get_do_escape_coding() const
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_get_do_escape_coding(encoder_);
- }
-
- bool File::get_do_exhaustive_model_search() const
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_get_do_exhaustive_model_search(encoder_);
- }
-
- unsigned File::get_min_residual_partition_order() const
- {
- FLAC__ASSERT(is_valid());
- return ::OggFLAC__file_encoder_get_min_residual_partition_order(encoder_);
- }
-
- unsigned File::get_max_residual_partition_order() const
- {
- FLAC__ASSERT(is_valid());
- return ::OggFLAC__file_encoder_get_max_residual_partition_order(encoder_);
- }
-
- unsigned File::get_rice_parameter_search_dist() const
- {
- FLAC__ASSERT(is_valid());
- return ::OggFLAC__file_encoder_get_rice_parameter_search_dist(encoder_);
- }
-
- FLAC__uint64 File::get_total_samples_estimate() const
- {
- FLAC__ASSERT(is_valid());
- return ::OggFLAC__file_encoder_get_total_samples_estimate(encoder_);
- }
-
- File::State File::init()
- {
- FLAC__ASSERT(is_valid());
- ::OggFLAC__file_encoder_set_progress_callback(encoder_, progress_callback_);
- ::OggFLAC__file_encoder_set_client_data(encoder_, (void*)this);
- return State(::OggFLAC__file_encoder_init(encoder_));
- }
-
- void File::finish()
- {
- FLAC__ASSERT(is_valid());
- ::OggFLAC__file_encoder_finish(encoder_);
- }
-
- bool File::process(const FLAC__int32 * const buffer[], unsigned samples)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_process(encoder_, buffer, samples);
- }
-
- bool File::process_interleaved(const FLAC__int32 buffer[], unsigned samples)
- {
- FLAC__ASSERT(is_valid());
- return (bool)::OggFLAC__file_encoder_process_interleaved(encoder_, buffer, samples);
+ (void)buffer, (void)bytes, (void)samples, (void)current_frame;
+ FLAC__ASSERT(false);
+ return ::FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR; // double protection
}
void File::progress_callback(FLAC__uint64 bytes_written, FLAC__uint64 samples_written, unsigned frames_written, unsigned total_frames_estimate)
@@ -346,7 +82,7 @@ namespace OggFLAC {
(void)bytes_written, (void)samples_written, (void)frames_written, (void)total_frames_estimate;
}
- void File::progress_callback_(const ::OggFLAC__FileEncoder *encoder, FLAC__uint64 bytes_written, FLAC__uint64 samples_written, unsigned frames_written, unsigned total_frames_estimate, void *client_data)
+ void File::progress_callback_(const ::FLAC__StreamEncoder *encoder, FLAC__uint64 bytes_written, FLAC__uint64 samples_written, unsigned frames_written, unsigned total_frames_estimate, void *client_data)
{
(void)encoder;
FLAC__ASSERT(0 != client_data);