Jamie Tittle wrote:
Update of /cvsroot/pd-gem/Gem/src/Pixes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14661
Modified Files: pix_freeframe.cpp Log Message: [osx] new loader code that works with freeframe 1.0 SDK;
good that it works now!
note that the plugin will be looked for in the same directory as the patch,
actually that is why i used the open_via_path() method. this should allow to add a path with the ff-plugins at the startup and pd will find it automatically (btw, the same is true for font-loading). the code for resolving the full filename is in the constructor of pix_freeframe, so you might have overlooked it.
and currently you must append ".frf" to the end of the plugin's name
but doesn't this:
- #elif defined __APPLE__
#else".frf";
take care of the extensions?
anyhow, great that it turned out solvable.
mf.asd.r IOhannes
On Feb 10, 2006, at 2:54 AM, IOhannes m zmoelnig wrote:
actually that is why i used the open_via_path() method. this should allow to add a path with the ff-plugins at the startup and pd will find it automatically (btw, the same is true for font- loading). the code for resolving the full filename is in the constructor of pix_freeframe, so you might have overlooked it.
and currently you must append ".frf" to the end of the plugin's name
but doesn't this:
- #elif defined __APPLE__
#else".frf";
take care of the extensions?
...well, I thought so, to but notice the following: in the first try I used [pix_freeframe Chromium.frf] and in the second [pix_freeframe Chromium]
tried /Users/tigital/puredataDev/Gem/build/Chromium.frf.frf and failed tried /Users/tigital/puredataDev/Gem/build/Development/ Chromium.frf.frf and failed tried ../Resources/doc/abstractions/footils/list-abs/Chromium.frf.frf and failed tried /Users/tigital/Desktop/Pd-0.38.4-extended-RC5.app/Contents/ Resources/Scripts/../extra/iemmatrix/Chromium.frf.frf and failed tried /Users/tigital/Desktop/PureData.app/Contents/Resources/ Scripts/../extra/iemmatrix/Chromium.frf.frf and failed tried /Users/tigital/Desktop/PureData.app/Contents/Resources/ Scripts/../extra/toxy/Chromium.frf.frf and failed tried /Users/tigital/Desktop/PureData.app/Contents/Resources/ Scripts/../extra/zexy/Chromium.frf.frf and failed tried /Users/tigital/Desktop/PureData.app/Contents/Resources/ Scripts/../extra/Chromium.frf.frf and failed trying to load /Users/tigital/puredataDev/Gem/build/Chromium.frf plugin @ 706700 pix_freeframe[Chromium.frf]: param#0: Edge1 param#1: Edge2 param#2: Tint Red param#3: Tint Green param#4: Tint Blue pix_film: colorspace change will take effect the next time you load a film tried /Users/tigital/puredataDev/Gem/build/Chromium.frf; stat failed or directory tried /Users/tigital/puredataDev/Gem/build/Development/Chromium.frf and failed tried ../Resources/doc/abstractions/footils/list-abs/Chromium.frf and failed tried /Users/tigital/Desktop/Pd-0.38.4-extended-RC5.app/Contents/ Resources/Scripts/../extra/iemmatrix/Chromium.frf and failed tried /Users/tigital/Desktop/PureData.app/Contents/Resources/ Scripts/../extra/iemmatrix/Chromium.frf and failed tried /Users/tigital/Desktop/PureData.app/Contents/Resources/ Scripts/../extra/toxy/Chromium.frf and failed tried /Users/tigital/Desktop/PureData.app/Contents/Resources/ Scripts/../extra/zexy/Chromium.frf and failed tried /Users/tigital/Desktop/PureData.app/Contents/Resources/ Scripts/../extra/Chromium.frf and failed trying to load /Users/tigital/puredataDev/Gem/build/Chromium /Users/tigital/puredataDev/Gem/build/Chromium: couldn't load plugin @ 0 error: GemException: couldn't load FreeFrame-plugin pix_freeframe Chromium ... couldn't create
...so it seems that instead of just appending .frf, it's appending ; also? I haven't figured out why yet, so maybe you have an idea...?
...also, without knowing too much about the freeframe spec, I'm wondering if there's a way to get or "register" the default values, or even the range of the individual parameters? Would be nice to create an auto-setup kinda abstraction...
jamie
On Feb 10, 2006, at 9:20 AM, james tittle wrote:
tried /Users/tigital/puredataDev/Gem/build/Chromium.frf; stat failed or directory
...ok, just realized what the problem is: freeframe plugins on osx ARE directories! Actually, they're bundles, somewhat similar to application "bundles" or frameworks, such that there is a directory structure surrounding a binary that allows the inclusion of relevent resources (ie. plists/xml, icons, etc.) So the problem here is that it's finding the "Chromium.frf" ok, but it's crapping out because it's not a binary!
...now, how do we get around this? I suppose it'd be something like an osx specific search for a directory of the name "*.frf"...
...also, without knowing too much about the freeframe spec, I'm wondering if there's a way to get or "register" the default values, or even the range of the individual parameters? Would be nice to create an auto-setup kinda abstraction...
...I've read the freeframe spec now, and obviously there's a "getDefaultParameters()" call that we can make...but I still don't see a function for getting valid parameter ranges: am I missing something...?
jamie
james tittle wrote:
On Feb 10, 2006, at 9:20 AM, james tittle wrote:
tried /Users/tigital/puredataDev/Gem/build/Chromium.frf; stat failed or directory
...ok, just realized what the problem is: freeframe plugins on osx ARE directories! Actually, they're bundles, somewhat similar to
...now, how do we get around this? I suppose it'd be something like an osx specific search for a directory of the name "*.frf"...
argh! we needs live to be so complicated!
...also, without knowing too much about the freeframe spec, I'm wondering if there's a way to get or "register" the default values, or even the range of the individual parameters? Would be nice to create an auto-setup kinda abstraction...
...I've read the freeframe spec now, and obviously there's a "getDefaultParameters()" call that we can make...but I still don't see a function for getting valid parameter ranges: am I missing something...?
yes, the freeframe-specs are very precise about this and make it quite simple. quoting http://freeframe.sourceforge.net/spec.html
"Apart from text parameters, FreeFrame parameter values are always 32-bit floats, and the range of values permitted is STRICTLY 0-1 (0 <= ParameterValue <= 1). This allows faster processing and a good range of values over a standard range, so the host can run up sliders or similar for the plugin. The Use of any values outside this range will result in hideous incompatibilities."
so ranges are always between 0..1 (which happens to be similar to Gem :-))
mfg.asd.r IOhannes
james tittle wrote:
On Feb 10, 2006, at 9:20 AM, james tittle wrote:
tried /Users/tigital/puredataDev/Gem/build/Chromium.frf; stat failed or directory
...ok, just realized what the problem is: freeframe plugins on osx ARE directories! Actually, they're bundles, somewhat similar to application "bundles" or frameworks, such that there is a directory structure surrounding a binary that allows the inclusion of relevent resources (ie. plists/xml, icons, etc.) So the problem here is that it's finding the "Chromium.frf" ok, but it's crapping out because it's not a binary!
...now, how do we get around this? I suppose it'd be something like an osx specific search for a directory of the name "*.frf"...
after a quick glance at Pete's CoreImage plugins (i guess you are referring to those): how about trying to search for a file within the bundle? i see that the bundle for the plugin "Gloom" is a directory "CIGloom.frf" which holds the actual binary "CIGloom.frf/CIGloom" so my idea is to open_via_path() a file printf("%s.frf/%s", name, name), and pass that (probably stripping off the "/*" part) to bundle-loader.
however, i have no idea whether this is generic enough to keep working...
the other question is, why freeframe-plugins on osx _are_ bundles at all (i don't find this in the specs)
mfg.ad.r IOhannes
On Feb 13, 2006, at 4:38 AM, IOhannes m zmoelnig wrote:
after a quick glance at Pete's CoreImage plugins (i guess you are referring to those): how about trying to search for a file within the bundle? i see that the bundle for the plugin "Gloom" is a directory "CIGloom.frf" which holds the actual binary "CIGloom.frf/CIGloom" so my idea is to open_via_path() a file printf("%s.frf/%s", name, name), and pass that (probably stripping off the "/*" part) to bundle- loader.
however, i have no idea whether this is generic enough to keep working...
...no, I think you've got a good idea: the bundle is just a generic wrapper around a binary and some extra resources, so it will have the same typical structure for all the plugins...so we'll just have to add that extra bit of location info, specifically:
nameOfPlugin.frf/Versions/A/nameOfPlugin
...alternatively, there's a symlink to the binary at the first level (ie. "nameOfPlugin.frf/nameOfPlugi"), but I don't know how open_via_path() would deal with that...?
the other question is, why freeframe-plugins on osx _are_ bundles at all (i don't find this in the specs)
...yeh, it's pretty clear from the top of the spec that they're to be .so's (or .dylib's in the mac-world), and that's what it used to be: it's not clear, and I have yet to find any discussion of it being changed...seems to've happened offlist sometime...
...anyway, one advantage of the bundle structure is that it allows for inclusion of extra resources, like say an icon for an fx button, or a splashscreen, or ...?
thanx, jamie
btw: I'm working on finishing the "round-trip" altivec accellerations for colorspace conversions...then I'd say we're ok for looking at release...are you interested (or anyone?) in doing these conversions in mmx/sse/sse2?