};
inline bool Prototype::operator==(const Prototype &object) const
- { return ::FLAC__metadata_object_is_equal(object_, object.object_); }
+ { return (bool)::FLAC__metadata_object_is_equal(object_, object.object_); }
inline bool Prototype::operator==(const ::FLAC__StreamMetadata &object) const
- { return ::FLAC__metadata_object_is_equal(object_, &object); }
+ { return (bool)::FLAC__metadata_object_is_equal(object_, &object); }
inline bool Prototype::operator==(const ::FLAC__StreamMetadata *object) const
- { return ::FLAC__metadata_object_is_equal(object_, object); }
+ { return (bool)::FLAC__metadata_object_is_equal(object_, object); }
inline bool Prototype::operator!=(const Prototype &object) const
{ return !operator==(object); }
if(-1 == fseek(f, 26, SEEK_SET)) goto end_;
fwrite(metadata->data.stream_info.md5sum, 1, 16, f);
-samples_:
/* if we get this far we know we can seek so no need to check the
* return value from fseek()
*/
\r
!include <win32.mak>\r
\r
-SUFFIXES = .cpp\r
+SUFFIXES = .cc\r
\r
!IFDEF DEBUG\r
.cc.obj:\r
- $(cc) /D "_LIB" /GX $(cdebug) $(cflags) /I "..\..\include" -DSTRICT -YX /Od /D "_DEBUG" $<\r
+ $(cc) /D "_LIB" /GX /GR $(cdebug) $(cflags) /I "..\..\include" -DSTRICT -YX /Od /D "_DEBUG" $<\r
!else\r
.cc.obj:\r
- $(cc) /D "_LIB" /O2 $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG $<\r
+ $(cc) /D "_LIB" /O2 /GR $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG $<\r
!endif\r
\r
CC_FILES= \\r
\r
# can't figure out how to get it to take .cc so we just hack it for now:\r
file_decoder.obj: file_decoder.cc\r
- $(cc) /D "_LIB" /O2 $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG /TP file_decoder.cc\r
+ $(cc) /D "_LIB" /O2 /GR $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG /TP file_decoder.cc\r
metadata.obj: metadata.cc\r
- $(cc) /D "_LIB" /O2 $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG /TP metadata.cc\r
+ $(cc) /D "_LIB" /O2 /GR $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG /TP metadata.cc\r
seekable_stream_decoder.obj: seekable_stream_decoder.cc\r
- $(cc) /D "_LIB" /O2 $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG /TP seekable_stream_decoder.cc\r
+ $(cc) /D "_LIB" /O2 /GR $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG /TP seekable_stream_decoder.cc\r
stream_decoder.obj: stream_decoder.cc\r
- $(cc) /D "_LIB" /O2 $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG /TP stream_decoder.cc\r
+ $(cc) /D "_LIB" /O2 /GR $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG /TP stream_decoder.cc\r
stream_encoder.obj: stream_encoder.cc\r
- $(cc) /D "_LIB" /O2 $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG /TP stream_encoder.cc\r
+ $(cc) /D "_LIB" /O2 /GR $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG /TP stream_encoder.cc\r
\r
clean:\r
-del *.obj *.pch\r
(void)fclose(*tempfile);
*tempfile = 0;
+
+#if defined _MSC_VER || defined __MINGW32__
+ if(unlink(filename) < 0) {
+ cleanup_tempfile_(tempfile, tempfilename);
+ *status = FLAC__METADATA_SIMPLE_ITERATOR_STATUS_UNLINK_ERROR;
+ return false;
+ }
+#endif
+
/*@@@ to fully support the tempfile_path_prefix we need to update this piece to actually copy across filesystems instead of just rename(): */
if(0 != rename(*tempfilename, filename)) {
cleanup_tempfile_(tempfile, tempfilename);
return 0;
}
-void getfileinfo(char *filename, char *title, int *length_in_ms)
+void getfileinfo(char *filename, char *title, int *length_in_msec)
{
id3v1_struct tag;
FLAC__StreamMetadata streaminfo;
if(0 == filename) {
filename = lastfn_;
- if (length_in_ms) {
- *length_in_ms = getlength();
- length_in_ms = 0; /* force skip in following code */
+ if (length_in_msec) {
+ *length_in_msec = getlength();
+ length_in_msec = 0; /* force skip in following code */
}
}
if(!FLAC__metadata_get_streaminfo(filename, &streaminfo)) {
MessageBox(mod_.hMainWindow, filename, "ERROR: invalid/missing FLAC metadata", 0);
if(title) {
- static const char *errtitle = "Invalid FLAC File: ");
+ static const char *errtitle = "Invalid FLAC File: ";
sprintf(title, "%s\"%s\"", errtitle, filename);
}
if(length_in_msec)
strcpy(title, tag.description);
}
if(length_in_msec)
- *length_in_msec = streaminfo.data.stream_info.total_samples * 10 / (streaminfo.data.stream_info.sample_rate / 100);
+ *length_in_msec = (int)(streaminfo.data.stream_info.total_samples * 10 / (streaminfo.data.stream_info.sample_rate / 100));
}
void eq_set(int on, char data[10], int preamp)
\r
!include <win32.mak>\r
\r
-SUFFIXES = .cpp\r
+SUFFIXES = .cc\r
\r
!IFDEF DEBUG\r
.c.obj:\r
\r
!IFDEF DEBUG\r
.cc.obj:\r
- $(cc) /D "_LIB" /GX $(cdebug) $(cflags) /I "..\..\include" -DSTRICT -YX /Od /D "_DEBUG" $<\r
+ $(cc) /GR /D "_LIB" /GX $(cdebug) $(cflags) /I "..\..\include" -DSTRICT -YX /Od /D "_DEBUG" $<\r
!else\r
.cc.obj:\r
- $(cc) /D "_LIB" /O2 $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG $<\r
+ $(cc) /GR /D "_LIB" /O2 $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG $<\r
!endif\r
\r
C_FILES= \\r
metadata_manip.cc \\r
metadata_object.cc\r
\r
-OBJS= $(C_FILES:.c=.obj)\r
-OBJS= $(CC_FILES:.cc=.obj)\r
+C_OBJS= $(C_FILES:.c=.obj)\r
+CC_OBJS= $(CC_FILES:.cc=.obj)\r
+\r
+all: test_libFLAC++.exe\r
\r
# can't figure out how to get it to take .cc so we just hack it for now:\r
decoders.obj: decoders.cc\r
metadata_object.obj: metadata_object.cc\r
$(cc) /D "_LIB" /O2 $(crelease) $(cflags) /I "..\..\include" -DSTRICT -YX -DNODEBUG /TP metadata_object.cc\r
\r
-all: test_libFLAC++.exe\r
-\r
-test_libFLAC++.exe: $(OBJS)\r
- link.exe /libpath:"..\..\obj\lib" -out:../../obj/bin/$*.exe $(OBJS) libFLAC++.lib libFLAC.lib\r
+test_libFLAC++.exe: $(C_OBJS) $(CC_OBJS)\r
+ link.exe /libpath:"..\..\obj\lib" -out:../../obj/bin/$*.exe $(CC_OBJS) $(C_OBJS) libFLAC++.lib libFLAC.lib\r
\r
clean:\r
-del *.obj *.pch\r
void StreamDecoder::metadata_callback(const ::FLAC__StreamMetadata *metadata)
{
- return common_metadata_callback_(metadata);
+ common_metadata_callback_(metadata);
}
void StreamDecoder::error_callback(::FLAC__StreamDecoderErrorStatus status)
{
- return common_error_callback_(status);
+ common_error_callback_(status);
}
bool StreamDecoder::die(const char *msg) const
if(error_occurred_)
return ::FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
- if(::fseek(file_, absolute_byte_offset, SEEK_SET) < 0) {
+ if(::fseek(file_, (long)absolute_byte_offset, SEEK_SET) < 0) {
error_occurred_ = true;
return ::FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
}
if(error_occurred_)
return true;
- return feof(file_);
+ return (bool)feof(file_);
}
::FLAC__StreamDecoderWriteStatus SeekableStreamDecoder::write_callback(const ::FLAC__Frame *frame, const FLAC__int32 * const buffer[])
#include "metadata.h"
#include <stdio.h>
-extern int test_metadata_object();
-extern int test_metadata_file_manipulation();
+extern bool test_metadata_object();
+extern bool test_metadata_file_manipulation();
bool test_metadata()
{
return die_ss_("iterator.insert_block_after(app, true)", iterator);
if(!insert_to_our_metadata_(app, ++our_current_position, /*copy=*/true))
return false;
- add_to_padding_length_(our_current_position+1, -((FLAC__STREAM_METADATA_APPLICATION_ID_LEN/8) + app->get_length()));
+ add_to_padding_length_(our_current_position+1, -((int)(FLAC__STREAM_METADATA_APPLICATION_ID_LEN/8) + (int)app->get_length()));
if(!test_file_(flacfile_, /*ignore_metadata=*/false))
return false;
return die_ss_("iterator.set_block(app, true)", iterator);
if(!insert_to_our_metadata_(app, our_current_position, /*copy=*/true))
return false;
- add_to_padding_length_(our_current_position+1, -((FLAC__STREAM_METADATA_APPLICATION_ID_LEN/8) + app->get_length()));
+ add_to_padding_length_(our_current_position+1, -((int)(FLAC__STREAM_METADATA_APPLICATION_ID_LEN/8) + (int)app->get_length()));
if(!test_file_(flacfile_, /*ignore_metadata=*/false))
return false;
return die_("setting APPLICATION data");
if(!replace_in_our_metadata_(app, our_current_position, /*copy=*/true))
return die_("copying object");
- add_to_padding_length_(our_current_position+1, -(sizeof(data) - 12));
+ add_to_padding_length_(our_current_position+1, -((int)sizeof(data) - 12));
if(!iterator.set_block(app, true))
return die_ss_("iterator.set_block(app, true)", iterator);
printf("OK\n");
printf("testing FLAC::Metadata::clone(const FLAC::Metadata::Prototype *)... ");
- FLAC::Metadata::Prototype *clone_ = clone(&block);
+ FLAC::Metadata::Prototype *clone_ = FLAC::Metadata::clone(&block);
if(0 == clone_)
return die_("returned NULL");
if(0 == dynamic_cast<FLAC::Metadata::StreamInfo *>(clone_))
printf("OK\n");
printf("testing FLAC::Metadata::clone(const FLAC::Metadata::Prototype *)... ");
- FLAC::Metadata::Prototype *clone_ = clone(&block);
+ FLAC::Metadata::Prototype *clone_ = FLAC::Metadata::clone(&block);
if(0 == clone_)
return die_("returned NULL");
if(0 == dynamic_cast<FLAC::Metadata::Padding *>(clone_))
printf("OK\n");
printf("testing FLAC::Metadata::clone(const FLAC::Metadata::Prototype *)... ");
- FLAC::Metadata::Prototype *clone_ = clone(&block);
+ FLAC::Metadata::Prototype *clone_ = FLAC::Metadata::clone(&block);
if(0 == clone_)
return die_("returned NULL");
if(0 == dynamic_cast<FLAC::Metadata::Application *>(clone_))
printf("OK\n");
printf("testing FLAC::Metadata::clone(const FLAC::Metadata::Prototype *)... ");
- FLAC::Metadata::Prototype *clone_ = clone(&block);
+ FLAC::Metadata::Prototype *clone_ = FLAC::Metadata::clone(&block);
if(0 == clone_)
return die_("returned NULL");
if(0 == dynamic_cast<FLAC::Metadata::SeekTable *>(clone_))
printf("OK\n");
printf("testing FLAC::Metadata::clone(const FLAC::Metadata::Prototype *)... ");
- FLAC::Metadata::Prototype *clone_ = clone(&block);
+ FLAC::Metadata::Prototype *clone_ = FLAC::Metadata::clone(&block);
if(0 == clone_)
return die_("returned NULL");
if(0 == dynamic_cast<FLAC::Metadata::VorbisComment *>(clone_))
if(dcd->error_occurred)
return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
- if(fseek(dcd->file, absolute_byte_offset, SEEK_SET) < 0) {
+ if(fseek(dcd->file, (long)absolute_byte_offset, SEEK_SET) < 0) {
dcd->error_occurred = true;
return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
}
bps=$3
encode_options="$4"
+ if [ `env | grep -ic '^comspec='` != 0 ] ; then
+ is_win=yes
+ else
+ is_win=no
+ fi
+
echo -n "$name: encode via pipes..."
- cmd="flac -V -s -fr -fb -fs 44100 -fp $bps -fc $channels $encode_options -c -"
- echo "### ENCODE $name #######################################################" >> ./streams.log
- echo "### cmd=$cmd" >> ./streams.log
- if cat $name.raw | $cmd 1>$name.flac 2>>./streams.log ; then : ; else
- echo "ERROR during encode of $name" 1>&2
- exit 1
+ if [ $is_win = yes ] ; then
+ cmd="flac -V -s -fr -fb -fs 44100 -fp $bps -fc $channels $encode_options -c $name.raw"
+ echo "### ENCODE $name #######################################################" >> ./streams.log
+ echo "### cmd=$cmd" >> ./streams.log
+ if $cmd 1>$name.flac 2>>./streams.log ; then : ; else
+ echo "ERROR during encode of $name" 1>&2
+ exit 1
+ fi
+ else
+ cmd="flac -V -s -fr -fb -fs 44100 -fp $bps -fc $channels $encode_options -c -"
+ echo "### ENCODE $name #######################################################" >> ./streams.log
+ echo "### cmd=$cmd" >> ./streams.log
+ if cat $name.raw | $cmd 1>$name.flac 2>>./streams.log ; then : ; else
+ echo "ERROR during encode of $name" 1>&2
+ exit 1
+ fi
fi
echo -n "decode via pipes..."
- cmd="flac -s -fb -d -fr -c -"
- echo "### DECODE $name #######################################################" >> ./streams.log
- echo "### cmd=$cmd" >> ./streams.log
- if cat $name.flac | $cmd 1>$name.cmp 2>>./streams.log ; then : ; else
- echo "ERROR during decode of $name" 1>&2
- exit 1
+ if [ $is_win = yes ] ; then
+ cmd="flac -s -fb -d -fr -c $name.flac"
+ echo "### DECODE $name #######################################################" >> ./streams.log
+ echo "### cmd=$cmd" >> ./streams.log
+ if $cmd 1>$name.cmp 2>>./streams.log ; then : ; else
+ echo "ERROR during decode of $name" 1>&2
+ exit 1
+ fi
+ else
+ cmd="flac -s -fb -d -fr -c -"
+ echo "### DECODE $name #######################################################" >> ./streams.log
+ echo "### cmd=$cmd" >> ./streams.log
+ if cat $name.flac | $cmd 1>$name.cmp 2>>./streams.log ; then : ; else
+ echo "ERROR during decode of $name" 1>&2
+ exit 1
+ fi
fi
ls -1l $name.raw >> ./streams.log
ls -1l $name.flac >> ./streams.log