Opened 16 years ago

Closed 16 years ago

Last modified 11 months ago

#8315 closed patch

Flac Support

Reported by: SF/nolange Owned by: fingolfin
Priority: normal Component: Audio
Keywords: Cc:
Game:

Description

I zipped the 3 files up.
The preprocessorflag is "USE_FLAC", if set it will require
either the libflac or libflac _static Library.
I had duplicate symbols upon linking, might be that youll
need to ignore libc as I had to.

Of course the projects/makefiles have to be adopted(
adding header & source and the flac-library ), Im working
with MSVS7.1, so I couldnt even submit my own Project -
its incompatible to VS7.1 and earlier.

extract and simonmp3 now have a --flac switch to
generate flac-Compressed containers.
CD-Tracks are supported.

I tested CD-Loom and DOTT, both work fine.

Ticket imported from: #885904. Ticket imported from: patches/420.

Attachments (3)

configure-flac.diff (2.5 KB ) - added by SF/nolange 16 years ago.
gjasny`s Configure-Patch
Flac-Patch4.zip (18.8 KB ) - added by SF/nolange 16 years ago.
diffed against current CVS (16.2.04)
configure-flac2.diff (2.2 KB ) - added by SF/nolange 16 years ago.

Download all attachments as: .zip

Change History (49)

comment:1 by SF/nolange, 16 years ago

oops again, now here are the files

comment:2 by fingolfin, 16 years ago

I haven't had time to look closely at this, but a few things I
noticed:

* getFlacTrack etc. leak (a File object is created but not disposed)
* no legal headers in flac.cpp/flac.h
* odd lineends (?) in flac.cpp, in particular around
FLAC__SeekableStreamDecoderTellStatus
* patch is not following our source formatting conventions
* enum names, in particular:
enum { MP3 = 0, Vorbis = 1, Flac = 2} _sound_mode
that should be something like kMP3Mode, kVorbisMode, kFlacMode
* in extract & simon2mp3 help text, this line is printed twice:
--help this help message
* The change made to tools/util.h is not correct - you can't just
override the "inline" there, it will lead to duplicate symbol errors

comment:3 by SF/nolange, 16 years ago

> getFlacTrack etc. leak (a File object is created but not
disposed)
fixed

> no legal headers in flac.cpp/flac.h
fixed, unless theres something wrong with the $Header
placeholder

> odd lineends (?) in flac.cpp, in particular around
FLAC__SeekableStreamDecoderTellStatus
converted the File to DOS-linefeeds - I hope thats what you
meant, otherwise I dont have a clue

> patch is not following our source formatting conventions
Sorry, dint find them. Please point me to them.

> in extract & simon2mp3 help text, this line is printed twice:
--help this help message
You must have eagle eyes. fixed

> The change made to tools/util.h is not correct - you can't
just override the "inline" there, it will lead to duplicate symbol
errors
inline aint a C-Keyword( I just made sure by looking into
Stroustrups Book ) and aint( shouldnt? ) defined - the line I
added is only reached by C-Compilers. Which wont compile
otherwise.

Ill have a closer look on my whole Code once I found the
source conventions.

comment:4 by SF/nolange, 16 years ago

fine, I just seen that:

/* If your C compiler doesn't support 'inline', please add a
check for it. */
#if defined(CHECK_FOR_OLD_C_COMPILER)
#define inline
#endif

must have been added after I changed it, if I dint seen it I
better loose my driving license

comment:5 by fingolfin, 16 years ago

No, with lineends I didn't mean that I want you to switch to DOS
lineeneds. My editor can open unix/dos/mac linenends. The
problem is that flac.cpp isn't using consistent lineends - parts of it
use other lineends than others.
Anyway, I can probably manually fix it (replace \n by \r or so)

Our source code conventions can be found on our homepage, in
the documentation section. Direct link: <http://scummvm.org/
documentation.php?view=conventions>

comment:6 by fingolfin, 16 years ago

Summary: Flac Support - now for realFlac Support

comment:7 by fingolfin, 16 years ago

More:

* Using openStreamFile succesfully will leak "tempFile"
* There is a change in sword1/control.cpp which seems completely
unrelated to flac support

comment:8 by SF/nolange, 16 years ago

> Using openStreamFile succesfully will leak "tempFile"
gonna fix it
> There is a change in sword1/control.cpp which seems
completely unrelated to flac support
Right, my C++ Libs have a float and a double-version of sqrt()
- its not related to flac, but its necessary to compile.

I dont have much time now, Ill see that I have proofreaded my
stuff and changed to the source-conventions on this weekend.

comment:9 by fingolfin, 16 years ago

No worries, you have time, this won't be checked in before the
0.6.0 release anyway :-)

comment:10 by SF/nolange, 16 years ago

> No worries, you have time, this won't be checked in before
the 0.6.0 release anyway :-)

Ack, I hoped it would be, but I guess that means 0.6.0 is
closer than I thought ;)

I cleaned up my stuff and the changes I done to other files.
The tools-patch schould follow the next days.

sound/mixer.cpp has a confilct, but it should be easy to solve.

comment:11 by SF/nolange, 16 years ago

Another update...
I tried to play a corrupted file, dint worked as I intended it.

* Fixed handling of bad/nonflac Files
* Added Flac-support for Simon

Just aint sure how I should handle Plattforms which only allow
a 3-letter-extension ?

comment:12 by SF/nolange, 16 years ago

Another update...
I tried to play a corrupted file, dint worked as I intended it.

* Fixed handling of bad/nonflac Files
* Added Flac-support for Simon

Just aint sure how I should handle Plattforms which only allow
a 3-letter-extension ?

comment:13 by SF/nolange, 16 years ago

just made a few more tweaks to flac.cpp. I really think that
should be it.

Possible Problem: A stream of a corrupt/nonflac File will report
0 as samplerate.

comment:14 by fingolfin, 16 years ago

The 3 letter extension seems to be .fla (see also http://filext.com/
detaillist.php?extdetail=FLA). FLC of course is already taken by the
FLIC format.

Other things:
* It should be "_trackFormats" not "_kTrackFormats". But actually,
since that struct is 100% loclal to audiocd.cpp, I wouldn't declare it
in audiocd.h at all, but rather as a "global" type in audiocd.h
(usually, try to put things in headers only if you really have to.
That cuts down on recompile times when one has to make
changes, and helps to keep the API fully private)

* Same for "_kStreamFormats" in audiostream.h

* a patch for the configure script would be nice. However, you do
not have to provide this (esp. if you aren't on Unix ;-), we can add
one ourselves later on (just mention it here for completness).

comment:15 by SF/nolange, 16 years ago

* updated audiocd|audiostream .h|.cpp as requested
* try to load .flac, if that fails, try to load .fla (1 change in
Flac.cpp)

In sorry bout the config-files, all my attempts on working with
Linux/Unix failed miserably ;)

I knew about the 3-letter extension, but I wasnt how to do it,
at first I thought of a makro which will choose it in
dependence of the OS, but then I realized you can have more
than 1 filesystem on one OS. I guess the way its now is ok.

comment:16 by SF/nolange, 16 years ago

So these are both the tools & scummvm patches. I dont think
I changed anything than flac.cpp in scummvm, but I aint sure
now.

I have updated extract, simon2mp3, queenrebuild with an
--flac option. Parameters are passed directly to the encoder.
For some reason playing with the blocksize has the biggest
effect on resulting filesize - usually 1152 seems to be a good
value.

Should I update the readme with the changes too?

comment:17 by SF/gjasny, 16 years ago

The current version of flac.cpp doesn't compile under g++.
I've tracked the problem down to the following code:
// See flac.cpp PMCONVERTBUFFERS stuff

class Foo {
public:
Foo();
void convertA( int );
void convertB( int );
typedef void (Foo::*fptr)(int);
fptr _ptr;
};

Foo::Foo() : _ptr( convertA ) {}

If I try to compile this, I get the following error:
cppfptr.cpp: In constructor `Foo::Foo()':
cppfptr.cpp:12: error: argument of type `void (Foo::)(int)' does not
match `void (Foo::*)(int)'

I hope you can help,
Regards,
-Gregor

comment:18 by fingolfin, 16 years ago

Hum? flac.cpp compiles just fine over here (using gcc 3.3).

There are various other "issues", though:
* In struct StreamFileFormat, it must be
const char* decoderName;
const char* fileExtension;
* Likewise for struct TrackFormat
* flac.o must be added to sound/module.mk
* Another warning:
sound/audiostream.cpp:71: warning: comparison between signed
and unsigned
integer expressions

comment:19 by SF/gjasny, 16 years ago

Strange ...
I've modified flac.cpp this way:
_methodConvertBuffers( &FlacInputStream::convertBuffersGeneric )

At every assignment to a function pointer I've added
&FlacInputStream:: .

When will you include FLAC support to CVS?

-Gregor

comment:20 by SF/nolange, 16 years ago

I changed the structs, and fixed the warning Issue.
I also modified module.mk, though I`d rather prefer not to
change things I cant test.

I also modified flac.cpp in respect to the &FlacInputStream::
issue. Though I really think this is a shortcoming of the used
compiler.

comment:21 by fingolfin, 16 years ago

A shortcoming in the compiler indeed - esp. odd since it works just
fine with the same compiler for me (well, using GCC 3.3 - gjasny
never told us the compiler version he uses)

comment:22 by SF/gjasny, 16 years ago

I use gcc-3.3 (Debian Sid), I'll test with 2.95 and icc asap.
-Gregor

comment:23 by SF/gjasny, 16 years ago

Hi, I've run some tests, so using &Foo::fctn seems to be the only
solution to get this code compiled with g++.

convertA &convertA Foo::convertA &Foo::convertA
g++-2.95 error error error OK
g++-3.2 error error error OK
g++-3.3 error error error OK
icc 8 OK OK OK OK

&convertA g++-3.* message: ISO C++ forbids taking the address of an
unqualified non-static member function to form a pointer to member
function. Say `&Foo::convertA'

Foo::convertA g++-3.3 message: assuming pointer to member `void
Foo::convertA(int)' (a pointer to member can only be formed with
`&Foo::convertA')

-Gregor

comment:24 by SF/nolange, 16 years ago

Hmm, I looked around a bit and any example Code uses the
&Class::method notation. Though I dint find any reference
that specifiing just the method aint allowed. For functions you
can definitly leave out the &, it doesnt matters if you use it or
not.
The forced Class-Scope would be a exception to the way
name-resolving usually works in C++, and I cant think of a
Reason why it should be...

Anyways, if the new code makes trouble, let me know.

comment:25 by SF/gjasny, 16 years ago

I've hacked the configure script. As I can't see a possibility to upload a
file, I'll attach it uuencoded. Please email me to gjasny@users.sf.net if
you want it per mail.

Some notes:
flac.cpp must include flac.h before testing for USE_FLAC
#include "sound/flac.h"

#ifdef USE_FLAC

#include "common/file.h"
#include "common/util.h"

same in flac.h:
#ifndef SOUND_FLAC_H
#define SOUND_FLAC_H

#include "stdafx.h"
#include "common/scummsys.h"

#ifdef USE_FLAC

class AudioStream;

-Gregor

begin 644 configure-flac.diff
M26YD97@Z(&-O;F9I9W5R90H]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"E)#4R!F
M:6QE.B`O8W9S<F]O="]S8W5M;79M+W-C=6UM=FTO8V]
N9FEG=7)E+'8*<F5T
M<FEE=FEN9R!R979I<VEO;B`Q+C8U"F1I9F8@+74@+3,
@+7`@+7(Q+C8U(&-O
M;F9I9W5R90HM+2T@8V]N9FEG=7)E"3$@1F5B(#(P,#0@,30Z,#,Z,
#`@+3`P
M,#`),2XV-0HK*RL@8V]N9FEG=7)E"3,@1F5B(#(P,#0@,3,Z-3@Z,
3,@+3`P
M,#`*0$`@+3(V+#8@*S(V+#<@0$`@0UA81DQ!1U,](B1#6%A&3$%
'4R`D0U!0
M1DQ!1U,B"B`*(",@9&5F875L="!L:6(@8F5H879I;W5R('EE<R]N;R]
A=71O
M"B!?=F]R8FES/6%U=&\**U]F;&%C/6%U=&\*(%]M860]875T;
PH@7V%L<V$]
M875T;PH@7WIL:6(]875T;PI`0"`M,3DY+#8@*S(P,"PX($!`($]
P=&EO;F%L
M($QI8G)A<FEE<SH*("`@+2UW:71H+6]G9RUP<F5F:7@]
4("`@(%!R969I
M>"!W:&5R92!L:6)O9V<@:7,@:6YS=&%L;&5D("AO<'1I;VYA;
"D*("`@+2UW
M:71H+79O<F)I<RUP<F5F:7@]4(%!R969I>"!W:&5R92!L:6)V;W)
B:7,@
M:7,@:6YS=&%L;&5D("AO<'1I;VYA;"D*("`@+2UD:
7-A8FQE+79O<F)I<R`@
M("`@("`@(&1I<V%B;&4@3V=G(%9O<F)I<R!S=7!P;W)T(%
MA=71O9&5T96-T
M70HK("`M+7=I=&@M9FQA8RUP<F5F:7@]4("`@4')
E9FEX('=H97)E(&QI
M8D9,04,@:7,@:6YS=&%L;&5D("AO<'1I;VYA;"D**R`@+2UD:
7-A8FQE+69L
M86,@("`@("`@("`@(&1I<V%B;&4@1DQ!0R!S=7!P;W)T(%
MA=71O9&5T96-T
M70H@("`M+7=I=&@M;6%D+7!R969I>#U01E@@("`@4')
E9FEX('=H97)E(&QI
M8FUA9"!I<R!I;G-T86QL960@*&]P=&EO;F%L*0H@("`M+61I<V%
B;&4M;6%D
M("`@("`@("`@("`@9&ES86)L92!L:6)M860@*$U0,RD@<W5P<&]
R="!;875T
M;V1E=&5C=%T*("`@+2UW:71H+7IL:6(M<')E9FEX/5!&6"`@(%!
R969I>"!W
M:&5R92!Z;&EB(&ES(&EN<W1A;&QE9"`H;W!T:6]N86PI"D!`("TR,
C8L-B`K
M,C(Y+#@@0$`@9F]R(&%C7V]P=&EO;B!I;
B`D0#L@9&\*("`@("`@("TM9&ES
M86)L92UA;'-A*0D)7V%L<V$];F\).
SL*("`@("`@("TM96YA8FQE+79O<F)I
M<RD)"5]V;W)B:7,]>65S"3L["B`@("`@("`M+61I<V%B;&4M=F]
R8FES*0D)
M7W9O<F)I<SUN;PD[.PHK("`@("`@+2UE;F%B;&4M9FQA8RD)
"5]F;&%C/7EE
M<PD[.PHK("`@("`@+2UD:7-A8FQE+69L86,I"0E?9FQA8SUN;PD[.
PH@("`@
M("`@+2UE;F%B;&4M;6%D*0D)7VUA9#UY97,).
SL*("`@("`@("TM9&ES86)L
M92UM860I"0E?;6%D/6YO"0D[.PH@("`@("`@+2UE;F%B;
&4M>FQI8BD)"5]Z
M;&EB/7EE<PD[.PI`0"`M,C4Q+#8@*S(U-BPQ,2!`0"!F;W(@86-?;W!
T:6]N
M(&EN("1`.R!D;PH@"59/4D))4U]#1DQ!1U,](BU))%]P<F5F:7@O:
6YC;'5D
M92(*(`E63U)"25-?3$E"4STB+4PD7W!R969I>"]L:6(B"B`).
SL**R`@("`@
M("TM=VET:"UF;&%C+7!R969I>#TJ*0HK"5]P<F5F:7@]8&5C:&\@)
&%C7V]P
M=&EO;B!\(&-U="`M9"`G/2<@+68@,F`**PE&3$%#7T-&3$%
'4STB+4DD7W!R
M969I>"]I;F-L=61E(@HK"49,04-?3$E"4STB+4PD7W!R969I>"]L:
6(B"BL)
M.SL*("`@("`@("TM=VET:"UM860M<')E9FEX/2HI"B`)7W!
R969I>#U@96-H
M;R`D86-?;W!T:6]N('P@8W5T("UD("<])R`M9B`R8`H@"4U!1%]
#1DQ!1U,]
M(BU))%]P<F5F:7@O:6YC;'5D92(*0$`@+34V-BPV("LU-S8L,
C4@0$`@96QS
M90H@9FD*(&5C:&\@(B1?=F]
R8FES(@H@"BME8VAO8VAE8VL@(D9,04,B"BMI
M9B!T97-T("(D7V9L86,B(#T@875T;R`[('1H96X**R`@7V9L86,];
F\**R`@
M8V%T(#X@)%1-4$,@/#P@14]&"BLC:6YC;'5D92`\1DQ!0R]
S965K86)L95]S
M=')E86U?9&5C;V1E<BYH/@HK:6YT(&UA:6XH=F]I9"D@>R!
&3$%#7U]S965K
M86)L95]S=')E86U?9&5C;V1E<E]I;FET*"`P("D[(')E='5R;B`P.R!]
"BM%
M3T8**R`@8V-?8VAE8VL@)$QDQ!1U,@)$-86,04=3("1&3$%
#7T-&3$%'
M4R`D1DQ!65],24)3(%P**R`@+6Q&3$%#("UL;2`F)B!?
9FQA8SUY97,**V9I
M"BMI9B!T97-T("(D7V9L86,B(#T@>65S(#L@=&AE;@HK("!?
9&5F7V9L86,]
M)R-D969I;F4@55-%7T9,04,G"BL@($Q)0E,](B1,24)3("1&3$%#7TQ)
0E,@
M+6Q&3$%#(@HK("!)3D-,541%4STB)$E.0TQ51("1&3$%
#7T-&3$%'4R(*
M*V5L<V4**R`@7V1E9E]F;&%C/2<C=6YD968@55-%7T9,04,
G"BMF:0HK96-H
M;R`B)%]F;&%C(@HK"B!E8VAO8VAE8VL@(DU!
1"(*(&EF('1E<W0@(B1?;6%D
M(B`](&%U=&\@.R!T:&5N"B`@(%]M860];F\*0$`@+3<S.
"PV("LW-C<L-R!`
M0"!T>7!E9&5F('-I9VYE9"`D='EP95\T7V)Y=&4@:6YT,
S(["B`*("\J($QI
M8G,@*B\*("1?9&5F7W9O<F)I<PHK)%]D969?9FQA8PH@)%]
D969?;6%D"B`D
67V1E9E]A;'-A"B`D7V1E9E]Z;&EB"@``
`
end

comment:26 by SF/nolange, 16 years ago

Hmm, you did notice the "Check to Upload and Attach a File"
Checkbox ?

Why do I have to include flac.h before #ifdef USE_FLAC ? Are
there problems if files are completely "empty" in terms of
C-Statements?

Anyways, its way to early to use my brain, so dont blame if im
wrong ;)

by SF/nolange, 16 years ago

Attachment: configure-flac.diff added

gjasny`s Configure-Patch

comment:27 by SF/gjasny, 16 years ago

I see only two buttons: Monitor and Submit. Perhaps you need to be the
creator/maintainer to see this button.

To the include things:
USE_FLAC doesn't get set by the Makefile or -D. It is set in the
config.h file, which gets included by scummsys.h. So you need it to
know if FLAC is set or not. If you include your way, you see in the flac.
h file that flac.o doesn't depend on config.h. BTW: The vorbis guys
include first, too.

What patches, features, documentation is missing to include it to CVS?

Cheers,
-Gregor

comment:28 by fingolfin, 16 years ago

Patches for README and doc/ are missing.

However, don't get me wrong. Even with those pathces, this patch won't
be applied at this time.

comment:29 by fingolfin, 16 years ago

gjasny, patches for README and doc/ are missing.

However, don't get me wrong. Even with that, this patch won't
be applied at this time. First we have to branch for 0.6.0.

comment:30 by fingolfin, 16 years ago

gjasny, patches for README and doc/ are missing.

However, don't get me wrong. Even with that, this patch won't
be applied at this time. First we have to branch for 0.6.0.

comment:31 by fingolfin, 16 years ago

gjasny, patches for README and doc/ are missing.

However, don't get me wrong. Even with that, this patch won't
be applied at this time. First we have to branch for 0.6.0.

comment:32 by SF/nolange, 16 years ago

I was curious why the precompiler switches were after the
includes.. now I know.

fingolfin: umm... does that mean I have to hack into tex?

comment:33 by fingolfin, 16 years ago

nolange, no worries, you don't. If you add something for the README,
that's fine, we can take it from there into the TeX files easily... even the
README stuff isn't "pressing" at this point :-)

BTW, sorry for the quadruple comment, I was having problems with
SF.net (well, at that time, not just I was having problems with SF.net :-)

comment:34 by fingolfin, 16 years ago

OK, so we have branched 0.6.0.

If you update this patch to apply against latest CVS, I can check it in.
Thanks!

comment:35 by fingolfin, 16 years ago

Owner: set to fingolfin

comment:36 by SF/nolange, 16 years ago

Done, I also eliminated 2 conflicts in gjasny`s configure-patch.
Though I dont understand everything in the configure-script it
should do the same as his original Patch. Ill leave the original
as well.

by SF/nolange, 16 years ago

Attachment: Flac-Patch4.zip added

diffed against current CVS (16.2.04)

comment:37 by SF/nolange, 16 years ago

seems I cant upload the configure patch. Maybe I have to add
a comment...

comment:38 by SF/nolange, 16 years ago

No chance, I always get:
File Upload: ArtifactFile: File must be > 20 bytes and < 256000
bytes in length

Gonna add it as Text (sorry)
--------------------File Start--------------
Index: configure
==============================================
=====================
RCS file: /cvsroot/scummvm/scummvm/configure,v
retrieving revision 1.70
diff -u -r1.70 configure
--- configure 15 Feb 2004 02:48:22 -0000 1.70
+++ configure 16 Feb 2004 12:06:39 -0000
@@ -26,6 +26,7 @@

# default lib behaviour yes/no/auto
_vorbis=auto
+_flac=auto
_mad=auto
_alsa=auto
_zlib=auto
@@ -207,6 +208,9 @@

--with-mad-prefix=PFX Prefix where libmad is installed
(optional)
--disable-mad disable libmad (MP3) support
[autodetect]
+
+ --with-flac-prefix=PFX Prefix where libFLAC is installed
(optional)
+ --disable-flac disable FLAC support [autodetect]

--with-zlib-prefix=PFX Prefix where zlib is installed
(optional)
--disable-zlib disable zlib (compression) support
[autodetect]
@@ -243,6 +247,8 @@
--disable-alsa) _alsa=no ;;
--enable-vorbis) _vorbis=yes ;;
--disable-vorbis) _vorbis=no ;;
+ --enable-flac) _flac=yes ;;
+ --disable-flac) _flac=no ;;
--enable-mad) _mad=yes ;;
--disable-mad) _mad=no ;;
--enable-zlib) _zlib=yes ;;
@@ -269,6 +275,11 @@
VORBIS_CFLAGS="-I$_prefix/include"
VORBIS_LIBS="-L$_prefix/lib"
;;
+ --with-flac-prefix=*)
+ _prefix=`echo $ac_option | cut -d '=' -f 2`
+ FLAC_CFLAGS="-I$_prefix/include"
+ FLAC_LIBS="-L$_prefix/lib"
+ ;;
--with-mad-prefix=*)
_prefix=`echo $ac_option | cut -d '=' -f 2`
MAD_CFLAGS="-I$_prefix/include"
@@ -622,6 +633,25 @@
fi
echo "$_vorbis"

+echocheck "FLAC"
+if test "$_flac" = auto ; then
+ _flac=no
+ cat > $TMPC << EOF
+#include <FLAC/seekable_stream_decoder.h>
+int main(void) { FLAC__seekable_stream_decoder_init( 0 );
return 0; }
+EOF
+ cc_check $LDFLAGS $CXXFLAGS $FLAC_CFLAGS
$FLAY_LIBS \
+ -lFLAC -lm && _flac=yes
+fi
+if test "$_flac" = yes ; then
+ _def_flac='#define USE_FLAC'
+ LIBS="$LIBS $FLAC_LIBS -lFLAC"
+ INCLUDES="$INCLUDES $FLAC_CFLAGS"
+else
+ _def_flac='#undef USE_FLAC'
+fi
+echo "$_flac"
+
#
# Check for MAD (MP3 library)
#
@@ -809,6 +839,7 @@

/* Libs */
$_def_vorbis
+$_def_flac
$_def_mad
$_def_alsa
$_def_zlib

comment:39 by fingolfin, 16 years ago

Sorry but pasting it as text is useless, because it gets line wrapped.

Maybe try putting it into a zip file and attach that?

comment:40 by SF/nolange, 16 years ago

I mailed it to you, seems that attaching files just aint working
now

by SF/nolange, 16 years ago

Attachment: configure-flac2.diff added

comment:41 by SF/nolange, 16 years ago

Well, I must look like an idiot now after sending you two Mails
without attachment.
My Browser( which I also use for mails ) refuses to read files
from certain directories. Dunno if thats a feature or bug.

comment:42 by SF/nolange, 16 years ago

I dint explicitly notify you that I finally attached the
de-conflicted "configure-flac2.diff" Patch yesterday after I
found the source of the trouble. Guess you might havent
noticed in the mess I created ;)

comment:43 by fingolfin, 16 years ago

I checked in the "tools" patch now. For the rest, I am fixing some issues
with the README patch now (as well as backporting it to readme.tex).

comment:44 by fingolfin, 16 years ago

Patch is in CVS now!

I changed more spots in the code where our indention rules were not
followed (in particular, we always write "foo(x)" and not "foo( x )").

Note #1: that in the english language, nouns usually start with lower
caps ("the number of the track" and not "the Number of the Track"
besides many other examples :-)

Note #2: Doc comments are appreciated, but I recommend taking a brief
look at the doxygen documentation to learn how to take full advantage of
them. Alternatively, taking a peek at common/util.h may be helpful.

comment:45 by fingolfin, 16 years ago

Status: newclosed

comment:46 by digitall, 11 months ago

Component: Audio
Note: See TracTickets for help on using tickets.