29 #include <nsILocalFile.h>
30 #include <nsStringAPI.h>
32 #include <nsIComponentManager.h>
33 #include <nsIModule.h>
36 #include <mozilla-config.h>
38 #include <nsIEnvironment.h>
41 static char kRealComponent[] =
"sbGStreamerMediacore_d" MOZ_DLL_SUFFIX;
46 extern "C" NS_EXPORT nsresult
55 nsCOMPtr<nsIFile> parent;
56 rv = aLocation->GetParent(getter_AddRefs(parent));
57 NS_ENSURE_SUCCESS(rv, rv);
59 nsCOMPtr<nsIFile> libDir;
60 rv = parent->Clone(getter_AddRefs(libDir));
61 NS_ENSURE_SUCCESS(rv, rv);
62 rv = libDir->SetNativeLeafName(NS_LITERAL_CSTRING(
"lib"));
63 NS_ENSURE_SUCCESS(rv, rv);
67 #if defined(XP_MACOSX) || defined(XP_WIN)
70 nsCOMPtr<nsIEnvironment> envSvc =
71 do_GetService(
"@mozilla.org/process/environment;1", &rv);
72 NS_ENSURE_SUCCESS(rv, rv);
74 rv = envSvc->Exists(NS_LITERAL_STRING(
"SB_GST_SYSTEM"), &systemGst);
75 NS_ENSURE_SUCCESS(rv, rv);
81 nsCOMPtr<nsIFile> manifest;
82 rv = parent->Clone(getter_AddRefs(manifest));
83 NS_ENSURE_SUCCESS(rv, rv);
85 rv = manifest->AppendNative(NS_LITERAL_CSTRING(
"gst_libs.txt"));
86 NS_ENSURE_SUCCESS(rv, rv);
89 NS_ENSURE_SUCCESS(rv, rv);
93 NS_ENSURE_SUCCESS(rv, rv);
96 nsCOMPtr<nsILocalFile> libDirLocal = do_QueryInterface(libDir, &rv);
97 NS_ENSURE_SUCCESS(rv, rv);
100 rv = libDirLocal->Load(&lib);
101 NS_ENSURE_SUCCESS(rv, rv);
103 nsGetModuleProc getmoduleproc = (nsGetModuleProc)
104 PR_FindFunctionSymbol(lib,
"NSGetModule");
105 NS_ENSURE_TRUE(getmoduleproc, NS_ERROR_FAILURE);
107 return getmoduleproc(aCompMgr, aLocation, aResult);
static nsresult SB_LoadLibraries(nsIFile *aManifest)
static char kRealComponent[]
NS_EXPORT nsresult NSGetModule(nsIComponentManager *aCompMgr, nsIFile *aLocation, nsIModule **aResult)