From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,5d6e2ad0b6f4137a X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!proxad.net!feeder1-2.proxad.net!fdn.fr!gegeweb.org!aioe.org!not-for-mail From: John McCabe Newsgroups: comp.lang.ada Subject: Re: This MIDI stuff, would someone be interested in reviewing my code? Date: Tue, 09 Mar 2010 12:26:21 +0000 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: RXEkuaSUwmKe0XIGFYSK7A.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.8.2 X-Newsreader: Forte Agent 2.0/32.652 Xref: g2news1.google.com comp.lang.ada:9485 Date: 2010-03-09T12:26:21+00:00 List-Id: On Tue, 09 Mar 2010 12:10:16 +0000, Brian Drummond wrote: >On Tue, 09 Mar 2010 10:21:00 +0000, John McCabe >wrote: > >>On Mon, 08 Mar 2010 10:24:26 -0700, "Jeffrey R. Carter" >> wrote: > >>>I would make Numinputdevices and Numoutputdevices constants. >> >>They're not constants though - they're discovered from the >>midiInGetNumDevs and midiOutGetnumDevs functions. > >But you can call those functions in an initialisation clause on the declaration. >Then they remain constant within the begin..end section, so you can declare them >as constants. Yes - you're right - I'd just realised that before reading your message. >>>For this small >>>example, I would do the same with Midiincaps and Midioutcaps; > >>The point of allocating/freeing them was to get round the fact that, >>when they were declared in the declarative part of the main function, >>I seemed to have to use 'Unchecked_Access when passing them to >>midiInGetDevCaps/midiOutGetDevCaps. > >Look into the "aliased" keyword. Unlike C, the compiler will assume a local >variable is never aliased (and can be optimised) - unless you declare it >aliased, to say there may be a pointer to it. Declare them aliased and you >shouldn't need Unchecked_Access. I had them declared as aliased. With just 'access on it the compiler said "blah blah blah can't do it because it's not global" (or something like that). I'll check again, but that was the gist of it.