comp.lang.ada
 help / color / mirror / Atom feed
From: John McCabe <john@nospam.assen.demon.co.uk>
Subject: Re: This MIDI stuff, would someone be interested in reviewing my code?
Date: Tue, 09 Mar 2010 12:42:50 +0000
Date: 2010-03-09T12:42:50+00:00	[thread overview]
Message-ID: <ovfcp5tuhrrp1h5gp6tfnp9oumlvnapcvn@4ax.com> (raw)
In-Reply-To: bffcp5dj0ue4esmqsusm03o9dsi3rvt6em@4ax.com

On Tue, 09 Mar 2010 12:26:21 +0000, John McCabe
<john@nospam.assen.demon.co.uk> wrote:

>On Tue, 09 Mar 2010 12:10:16 +0000, Brian Drummond
><brian_drummond@btconnect.com> wrote:

>>>>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.

mididevs.adb:56:49: non-local pointer cannot point to local object

Note - this is an updated version so the lines aren't the same number!

That's with something like:

procedure MidiDevs is
   Midi_In_Caps : aliased Win32.Mmsystem.MIDIINCAPS;
   <blah>
begin
   <blah>
   res := Win32.Mmsystem.midiInGetDevCaps(Device_ID,
                                          Midi_In_Caps'Access,

Win32.Mmsystem.MIDIOUTCAPS'size 
                                             * Win32.BYTE'size);
   <blah>
end MidiDevs;

FWIW - I keep mentioning it's a long time since I used Ada, so there
may be something in there I've forgotten - I'll check my books!




  reply	other threads:[~2010-03-09 12:42 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-08 11:40 This MIDI stuff, would someone be interested in reviewing my code? John McCabe
2010-03-08 11:52 ` Gautier write-only
2010-03-08 12:30   ` John McCabe
2010-03-08 17:24 ` Jeffrey R. Carter
2010-03-09 10:21   ` John McCabe
2010-03-09 12:10     ` Brian Drummond
2010-03-09 12:26       ` John McCabe
2010-03-09 12:42         ` John McCabe [this message]
2010-03-10 11:12           ` Stephen Leake
2010-03-10 12:29             ` John McCabe
2010-03-09 12:24     ` John McCabe
2010-03-09 13:11       ` Martin
2010-03-09 14:00         ` John McCabe
2010-03-13  8:12 ` Christophe Chaumet
2010-03-15 11:35   ` John McCabe
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox