On 08/28/2014 04:14 PM, Tobias Boege wrote:
On Thu, 28 Aug 2014, Kevin Fishburne wrote:
When you store data files in the project directory and compile the
program those files are contained within the resulting .gambas
executable. From within the program they can be accessed as though they
were in the current directory. Is it possible to access (read only)
those files using a command executed by Shell? For example:

Shell "cat ./FileInProject"

I'm making a very simple SoundFont previewer that calls fluidsynth with
the passed SoundFont and a MIDI file embedded in the project/executable.

I could load the embedded file then write it to the user's /tmp
directory and pass that to fluidsynth, but won't if I don't have to.

No, the file is compiled into the .gambas archive. When your Gambas code
executes, the interpreter takes care of those relative paths and maps
them to the correct places in the (mmap'd?) archive file. An external
shell can't do that.

If there is some data you normally need during execution, it might be
better to provide an installation packages which puts these files to
/usr/share.

But otherwise you can "unpack" the archive once your program starts up
by recursively copying the "." directory (or any subdirectory of that)
from inside the Gambas process. We had a thread around here yesterday
or so which shows how to copy directories recursively. Then refer to the
files using the temporary location you unpacked them to.

Regards,
Tobi

PS: Or what Benoit said... BTW: is the .gambas file in a Gambas-specific
     archive format?


Thanks Benoît and Tobias. This made it simple enough:

    Try Copy "Preview.mid" To "/tmp/Preview.mid"
    ' Set command string.
Command = "fluidsynth -apulseaudio -i -n \"" & Application.Args[1] & "\" /tmp/Preview.mid"
    ' Play sample MIDI file using passed SoundFont.
    Shell Command Wait

I attached the insanely simple program in the event anyone would find it useful. Just associate .sf2 files with the GAMBAS executable and you can double-click a SoundFont in your file manager to hear a preview. It uses PulseAudio and fluidsynth, so adjust as necessary. The general idea is to make the organization of SoundFonts easier by allowing the use of your distro's file manager.

--
Kevin Fishburne
Eight Virtues
www: http://sales.eightvirtues.com
e-mail: sa...@eightvirtues.com
phone: (770) 853-6271

Attachment: SF2Preview.tar.gz
Description: application/gzip

------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to