Revision: 9883 http://pure-data.svn.sourceforge.net/pure-data/?rev=9883&view=rev Author: eighthave Date: 2008-05-23 17:05:54 -0700 (Fri, 23 May 2008)
Log Message: ----------- store plugindir as symbol in object's struct and use that with [plugindir( message; ported to Mac OS X
Modified Paths: -------------- trunk/externals/pdvjtools/pdp_freeframe/FreeFrame.h trunk/externals/pdvjtools/pdp_freeframe/pdp_freeframe.c
Modified: trunk/externals/pdvjtools/pdp_freeframe/FreeFrame.h =================================================================== --- trunk/externals/pdvjtools/pdp_freeframe/FreeFrame.h 2008-05-23 23:47:25 UTC (rev 9882) +++ trunk/externals/pdvjtools/pdp_freeframe/FreeFrame.h 2008-05-24 00:05:54 UTC (rev 9883) @@ -51,7 +51,7 @@ * includes */
-#ifdef WIN32 +#ifdef _WIN32
#if _MSC_VER > 1000 #pragma once @@ -60,17 +60,12 @@ #define WIN32_LEAN_AND_MEAN /* Exclude rarely-used stuff from Windows headers */ #include <windows.h>
-#elif defined LINUX +#elif defined(__linux__) || defined(__APPLE__)
typedef unsigned int DWORD; typedef void *LPVOID; typedef unsigned char BYTE;
-#elif defined MACOS - -typedef unsigned int DWORD; -typedef unsigned char BYTE; - #endif
@@ -207,7 +202,7 @@ * */
-#ifdef WIN32 +#ifdef _WIN32
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, DWORD lpReserved );
@@ -215,12 +210,12 @@
typedef __declspec(dllimport) LPVOID (__stdcall *FF_Main_FuncPtr)(DWORD, LPVOID, DWORD);
-#elif LINUX +#elif __linux__
plugMainUnion plugMain(DWORD functionCode, LPVOID pParam, DWORD reserved);
-#elif MACOS +#elif __APPLE__
typedef LPVOID (*FF_Main_FuncPtr)(DWORD, LPVOID, DWORD);
Modified: trunk/externals/pdvjtools/pdp_freeframe/pdp_freeframe.c =================================================================== --- trunk/externals/pdvjtools/pdp_freeframe/pdp_freeframe.c 2008-05-23 23:47:25 UTC (rev 9882) +++ trunk/externals/pdvjtools/pdp_freeframe/pdp_freeframe.c 2008-05-24 00:05:54 UTC (rev 9883) @@ -70,6 +70,7 @@ int x_plugin; int x_infosok; char x_pdetails[FREEFRAME_PARAM_DETAILS_LENGTH]; + t_symbol *plugindir;
PLUGIN *plugins;
@@ -188,6 +189,12 @@ x->plugins = NULL; }
+static void pdp_freeframe_plugindir(t_pdp_freeframe *x, t_symbol *s) +{ + x->plugindir = s; + ff_loadplugins(x, x->plugindir); +} + static void pdp_freeframe_process_rgb(t_pdp_freeframe *x) { t_pdp *header = pdp_packet_header(x->x_packet0); @@ -213,7 +220,7 @@ x->x_size = x->x_width*x->x_height;
//load the plugins - ff_loadplugins(x, FF_PLUGIN_DIR); + ff_loadplugins(x, x->plugindir); }
newheader->info.image.encoding = header->info.image.encoding; @@ -429,8 +436,20 @@ //load the plugins x->x_plugin_count = 0; x->x_infosok = 0; - //ff_loadplugins(x, FF_PLUGIN_DIR);
+ char ff_plugin_dir[FILENAME_MAX]; + char *home = getenv("HOME"); + int home_len; + if(home != NULL) + { + home_len = strlen(home); + if(home_len >= FILENAME_MAX) + home_len = FILENAME_MAX - 1; + memcpy(ff_plugin_dir, home, home_len); + ff_plugin_dir[home_len] = '\0'; + strncpy(ff_plugin_dir, "/.frf", FILENAME_MAX - home_len); + pdp_freeframe_plugindir(x, gensym(ff_plugin_dir)); + } pdp_freeframe_plugin(x, f);
return (void *)x; @@ -453,7 +472,7 @@ class_addmethod(pdp_freeframe_class, (t_method)pdp_freeframe_input_0, gensym("pdp"), A_SYMBOL, A_DEFFLOAT, A_NULL); class_addmethod(pdp_freeframe_class, (t_method)pdp_freeframe_plugin, gensym("plugin"), A_FLOAT, A_NULL); class_addmethod(pdp_freeframe_class, (t_method)pdp_freeframe_param, gensym("param"), A_FLOAT, A_FLOAT, A_NULL); - class_addmethod(pdp_freeframe_class, (t_method)ff_loadplugins, gensym("plugindir"), A_SYMBOL, A_NULL); + class_addmethod(pdp_freeframe_class, (t_method)pdp_freeframe_plugindir, gensym("plugindir"), A_SYMBOL, A_NULL);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.