On Monday 17 January 2005 08:38, Marco van de Voort wrote: > smf compiles fine under freeBSD. Thanks for testing.
> Alsapas has a unit libc dependancy. Most symbols used seem to be simple > types that are named slightly differently, but the piping functions use > libc stdio, which is not defined platform independant for FPC. (since FPC's > stdio doesn't go through libc). > > If you don't really use > > inputh.inc:function snd_input_stdio_attach(var inputp:Psnd_input_t; > fp:PIOFILE; _close:longint):longint;cdecl;external asoundlib_name; > outputh.inc:function snd_output_stdio_attach(var outputp:Psnd_output_t; > fp:PIOFILE; _close:longint):longint;cdecl;external asoundlib_name; > > then it could be made to compile with FPC without using unit libc I thik. Those functions are seldom used, but are part of the ALSA library API. And the main goal for ALSAPAS is to give full support of the ALSA library API. Besides inputh.inc and outputh.inc, there are more places where Libc is used. See the pollfd references in rawmidih.inc, or timeval/timespec in globalh.inc But even if you could take away all of them, I don't understand why to do so. I mean that ALSA is very Linux specific and it is not possible to use ALSA in xBSD, MacOS, Solaris or Win32, so there is not a need to use ALSAPAS outside a Linux box. And the ALSA userspace library, libasound.so, depends on Libc anyway (and libm, libdl, libpthread...). > > I've added one more example program, "buildsmf.pas", that creates a MIDI > > file from scratch, and also fixed several bugs. The ALSA examples still > > don't run with FPC, because some thread troubles. > > buildsmf compiles and generates a 90 byte midifile (under FreeBSD). spysmf > also compiles. Rest uses ALSA, and doesn't. OK. Thanks again. I have successfully tested the unit "smf" and the two programs buildsmf and spysmf in Win32 today. They should work in any environment supported by FPC. The resulting file "test.mid" is 90 bytes length, and has a single track with 8 notes, playing a simple C-Major scale. The other program should give this output on that file: $ ./spysmf test.mid 0 -- SMF Header Format=0, Tracks=1, Division=120 0 -- Track Start 0 0 Note On 60 120 60 0 Note Off 60 120 60 0 Note On 62 120 120 0 Note Off 62 120 120 0 Note On 64 120 180 0 Note Off 64 120 180 0 Note On 65 120 240 0 Note Off 65 120 240 0 Note On 67 120 300 0 Note Off 67 120 300 0 Note On 69 120 360 0 Note Off 69 120 360 0 Note On 71 120 420 0 Note Off 71 120 420 0 Note On 72 120 480 0 Note Off 72 120 480 -- Meta Event End Of Track 480 -- Track End As I have said, the programs involving ALSA are Linux only, but if there is some interest on that, I can prepare and distribute a separated package with the SMF related files only. Regards, Pedro _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal