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,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 2002:ad4:498d:: with SMTP id t13mr12365461qvx.58.1576235498111; Fri, 13 Dec 2019 03:11:38 -0800 (PST) X-Received: by 2002:a05:6830:56a:: with SMTP id f10mr13504336otc.368.1576235497793; Fri, 13 Dec 2019 03:11:37 -0800 (PST) Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!news.gegeweb.eu!gegeweb.org!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no10331360qtd.0!news-out.google.com!w29ni1221qtc.0!nntp.google.com!g89no10331350qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Fri, 13 Dec 2019 03:11:37 -0800 (PST) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=2a02:c7d:3c35:b000:325a:3aff:fe0f:37a5; posting-account=L2-UcQkAAAAfd_BqbeNHs3XeM0jTXloS NNTP-Posting-Host: 2a02:c7d:3c35:b000:325a:3aff:fe0f:37a5 References: <36d45c82-2a6b-4c60-baeb-1a4aef5189c7@googlegroups.com> <69c7677b-4aec-4db2-b240-de6b69f762b9@googlegroups.com> <23879d99-f1b0-4ade-8f2a-e45014fa04a7@googlegroups.com> <5260b4d5-23e7-40f4-ada7-6a3158dbdf80@googlegroups.com> <35e003d5-0805-43f5-ae25-fb94ad201942@googlegroups.com> <01eb359c-4898-4e52-8c86-c8c89c55ff75@googlegroups.com> <3e9872d9-0ced-4a9e-a58c-0155a564c071@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Is this actually possible? From: Lucretia Injection-Date: Fri, 13 Dec 2019 11:11:38 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader01.eternal-september.org comp.lang.ada:57725 Date: 2019-12-13T03:11:37-08:00 List-Id: On Thursday, 12 December 2019 21:12:34 UTC, Dmitry A. Kazakov wrote: > On 2019-12-12 21:54, Lucretia wrote: > > On Thursday, 12 December 2019 19:09:25 UTC, Dmitry A. Kazakov wrote: > >> On 2019-12-12 19:30, Lucretia wrote: > >>> On Thursday, 12 December 2019 18:24:55 UTC, Dmitry A. Kazakov wrote: > >>>> On 2019-12-12 16:15, Lucretia wrote: > >>>>> On Thursday, 12 December 2019 15:14:33 UTC, Lucretia wrote: > >>>>> > >>>>> > >>>>>>>>> Why? You must know all variants in order to compute the array element > >>>>>>>>> size. In Ada you cannot have it either: > >>>>>>>> > >>>>>>>> Because it's a binding to a C record: https://github.com/Lucretia/aplug/blob/master/ladspa/src/ladspa.ads#L113 > >>>>>>> > >>>>>>> I cannot recognize problem there. > >>>>>> > >>>>>> That's a predefined struct, it's referenced in the Descriptors below it. It cannot be changed. The API is too cyclic AFAIK to make generics out of it all. > >>>>> > >>>>> At the programmer's level, i.e. building a plug-in using the LADSPA API, they define ranges for their ports using that record above. Each port can have different ranges. > >>>> > >>>> Can you post the C struct type and where it is used. > >>> > >>> In ladspa.h and in exactly the same place as the Ada. > >>> > >>> https://www.ladspa.org/ladspa_sdk/ladspa.h.txt > >>> > >>> Here is the struct on a gh mirror: https://github.com/adsr/ladspa-sdk/blob/master/src/ladspa.h#L337 > >>> > >>> and it is used here: https://github.com/adsr/ladspa-sdk/blob/master/src/ladspa.h#L419 > >> > >> Maybe I am dense, but what I see is this: > >> > >> typedef struct _LADSPA_PortRangeHint { > >> > >> /* Hints about the port. */ > >> LADSPA_PortRangeHintDescriptor HintDescriptor; > >> > >> /* Meaningful when hint LADSPA_HINT_BOUNDED_BELOW is active. When > >> LADSPA_HINT_SAMPLE_RATE is also active then this value should be > >> multiplied by the relevant sample rate. */ > >> LADSPA_Data LowerBound; > >> > >> /* Meaningful when hint LADSPA_HINT_BOUNDED_ABOVE is active. When > >> LADSPA_HINT_SAMPLE_RATE is also active then this value should be > >> multiplied by the relevant sample rate. */ > >> LADSPA_Data UpperBound; > >> > >> } LADSPA_PortRangeHint; > >> > >> and > >> > >> typedef int LADSPA_PortRangeHintDescriptor; > >> typedef float LADSPA_Data; > >> > >> Where is a problem? > > > > You didn;'t look at both links I posted. > > That was from the linked header file. Could you simply post C code of > what you mean? I already did.