Create() public static method

public static Create ( string assemblyFilename, string bridgeDllDir ) : IAudioDevice
assemblyFilename string
bridgeDllDir string
return IAudioDevice
Example #1
0
        /// <summary>
        /// Load the plugin assembly and instantiates a new instance of the plugin class
        /// </summary>
        /// <param name="dllFilename"></param>
        /// <param name="assemblyFilename"></param>
        /// <returns></returns>
        public static int CreateDevice(string dllFilename, string assemblyFilename)
        {
            assemblyFilename = assemblyFilename.Trim();

            if (assemblyFilename.StartsWith("::PLACEHOLDER"))
            {
                Logging.Log("VST Bridge dll has not been patched, it only contains placeholder assembly name. You must set the correct assembly name");
                return(-1);
            }

            lock (LockObject)
            {
                int id = CurrentID;
                CurrentID++;

                Logging.Log("SharpSoundDevice Version: " + Assembly.GetExecutingAssembly().FullName);
                Logging.Log("Starting new plugin instance, ID: " + id);

                var assemblyName = assemblyFilename;
                Logging.Log("Assembly name: " + assemblyName);
                var bridgeDllDir = Path.GetDirectoryName(dllFilename);
                Logging.Log("Bridge Dll Dir: " + bridgeDllDir);
                var instance = PluginLoader.Create(assemblyName, bridgeDllDir);

                if (instance == null)
                {
                    return(-1);
                }

                Devices.Add(instance);                 // extend list by one
                instance.DeviceId = GetID(instance);
                Logging.Log("Object successfully loaded, DeviceId: " + GetID(instance));
                return(id);
            }
        }