| Message written at 20 Apr 1999 09:41:07 +0100
--- Copy of mail to pipe@algonet.se ---
In-reply-to: (message from Anders
Andersson on Fri, 16 Apr 1999 00:00:34 +0200)
References:
>>>>> "Anders" == Anders Andersson writes:
Anders> I'm very eager to see an official Amiga-dist of CSound in the future,
Anders> as I now believe I'm capable of handling that project.
Great, as that was a processor missing from the collection
Anders> But there are some things that I could need a bit help with before I
Anders> start planning on a clean Amiga dist. I need to write graphic routines
Anders> for AmigaOS, but I don't really know how CSound calls the different
Anders> window routines. I have managed to get a whole lot of information
Anders> by reading /winX11.c/ and /winbor.c/ etc etc, but there are still some
Anders> things I don't really get..
Anders> Are there any documentation on how to write graphic routines for CSound,
Anders> or do I have to look at the different window-handlers that's already
Anders> implemented?
Documentation no, but I have done a couple of implementations and I
would that it is not really very hard. You need to write functions
int Graphable(void) /* called during program initialisation */
void MakeGraph(WINDAT *wdptr, char *name)
/* called from window.c to open a graphics window */
void DrawGraph(WINDAT *wdptr) /* called from window.c to graph an array */
void KillGraph(WINDAT *wdptr) /* Destroy a graph */
int ExitGraph(void) /* stop graphs tptally */
and if you want to do xyin opcode you need the following two; or at
least dummies liek these
void MakeXYin(XYINDAT *wdptr, float x, float y) /* initial proportions */
{
}
void ReadXYin(XYINDAT *wdptr)
{
}
I suggest that you look at winfg.c and winbor.c as simple cases.
Anders> I have another problem with the Amiga-version, that has to do with the
Anders> compiler I currently use /(gcc)/.
Anders> It seems that the function "/tell()/" isn't imlemented, so all the opcodes
Anders> that use external samples don't work! =(.
I have removed tell from currect sources as it is not defined in all
systems. In sysdep.h I have added
# define tell(fd) lseek(fd, 0, SEEK_CUR)
for some platforms at least. I suggest that you do the same. If you
want I can send you my current sources
Anders> Strange thing though.. All the other Level 1 functions are implemented..
Anders> Are there any major reason to use Level 1 files? Or could they be rewritten
Anders> to use Level 2 (well, it's ANSI-C).
Anders> I assume all the file-handling routines are very deep in CSound, and would
Anders> be a *huge* pain to change, but if it's possible..
I have considered doing this rewrite, so it woudl be closer to real
ANSI, but always shirked away from the disruption. I think it should
be done, but there are places where an int as a file descriptor is
rather deep, and so converting to a FILE* is a pain. One could use
the fileno function, but that is not standard either.
Anders> The last but not least question:
Anders> Where can I find the absolute latest and recently updated
Anders> CSound documentation?
Anders> I've only found the online version, covering CSound V3.47.
In ftp.maths.bath.ac.uk:pub/dream/newest/ you can find both a ZIP and
a gzip-tar file of the 3.53 sources. You can have 3.54 putative
sources from me.
I have not decided on a time table for 3.54. At present it is just
some random changes (drag'n'drop for Windows, optimising soem filters,
better use for linevents, one new opcode, bug fixes in the FM4
instruments, better handling of piped output and some minor changes.
Hardly worth a release yet.
|