[Stk] iOS static library
Gary Scavone
gary at ccrma.Stanford.EDU
Wed Mar 12 05:30:47 PDT 2014
I am in complete agreement with Richard’s thoughts on this. There currently exists a way to set the RAWWAVE_PATH during compilation (using a preprocessor definition) but this was done mainly for the demo programs. The setRawwavePath() function exists exactly for the purpose you need and should be one of the first statements in a program making use of STK classes that use those files.
As might be obvious, I find I have less and less time to support and maintain STK. Thus, it is important that future developments don’t make that process any harder.
Regards,
—gary
On Mar 12, 2014, at 6:39 AM, Richard Dobson <richarddobson at blueyonder.co.uk> wrote:
> On 12/03/2014 03:49, Ariel Elkin wrote:
> ...
>> At any rate, I do think it makes more sense to have the STK
>> dynamically resolve the raw wave path, rather than require the user
>> to manually call setRawwavePath(). It’s a static library’s
>> responsibility to know where its resources are.
>> ...
>
> I disagree with this - I think it is the app's responsibility - partly
> because it already has that responsibility for so many other resources.
> As the developer, I would also want to have explicit control of the
> process in my app code.
>
> Have you seen this blog page about packaging resources in a bundle:
>
> http://www.galloway.me.uk/tutorials/ios-library-with-resources
>
>
> There are two aspects I get from this. Firstly, using code to load
> resources at runtime is something iOS programmers are already doing
> almost as a matter of routine (see the example towards the bottom of the
> page), so requiring the developer to add another line to obtain the
> rawwaves path is hardly taxing or burdensome. If such a thing is too
> difficult, using the STK may be even more difficult!
>
> Secondly, I noticed this comment, which reflects a concern I have:
>
> "Can I distribute my app, this way? Because when validating the archive
> I get the message that my app does not contain a single-bundle
> application (I guess because of the static library bundle?)"
>
> A custom resource bundle is a perfectly elegant idea in principle.
> However, Apple has rather strict rules about what constitutes a valid
> iOS app (e.g. no custom dynamic libraries), and adding a resource bundle
> (even though it only contains soundfiles) sounds like it could be a
> problem. I don't know for sure, as I have yet to get as far as
> submitting an app. But I think you need to be ready for the possibility
> that this may not be accepted.
>
> I am also not aware of a C or C++ API which can be used in a .cpp file
> to find the apps bundle directory, so (as I suggested before) it may not
> actually be possible to add something to Stk.cpp which would do the job.
> I am still puzzled as to why you think adding a handful of lines to the
> ~AppDelegate.mm etc is something to avoid. It would apart from anything
> else be an important and early component of a curriculum for teaching
> app design in schools, which is already happening here and there, as
> part of the general programme for teaching CS. This is something we in
> CDP are actively working on.
>
> So I remain of the opinion that the most straightforward way to manage
> things is to build the STk static library, copy it to your app project,
> likewise copy the rawwaves folder to your app bundle (root, or inside
> "resources", whatever), add the code to find the app path, and init Stk
> accordingly. No modification to STk source files or headers needed, and
> no danger of an added bundle breaking Apple's rules.
>
> Richard Dobson
>
> ** see e.g. http://people.bath.ac.uk/masrwd/smcs/smcslinks.html
>
> _______________________________________________
> Stk mailing list
> Stk at ccrma.stanford.edu
> http://ccrma-mail.stanford.edu/mailman/listinfo/stk
More information about the Stk
mailing list