public System.IO.Stream DoResampler(DriverModels.EngineInput Args) { System.IO.MemoryStream ms = new System.IO.MemoryStream(); if (!_isLegalPlugin) return ms; try { string tmpFile = System.IO.Path.GetTempFileName(); string ArgParam = string.Format( "\"{0}\" \"{1}\" {2} {3} \"{4}\" {5} {6} {7} {8} {9} {10} !{11} {12}", Args.inputWaveFile, tmpFile, Args.NoteString, Args.Velocity, Args.StrFlags, Args.Offset, Args.RequiredLength, Args.Consonant, Args.Cutoff, Args.Volume, Args.Modulation, Args.Tempo, Base64.Base64EncodeInt12(Args.pitchBend)); var p = Process.Start(new ProcessStartInfo(ExePath, ArgParam) { UseShellExecute = false, CreateNoWindow = true }); p.WaitForExit(); if (p != null) { p.Close(); p.Dispose(); p = null; } if (System.IO.File.Exists(tmpFile)) { byte[] Dat = System.IO.File.ReadAllBytes(tmpFile); ms = new MemoryStream(Dat); try { System.IO.File.Delete(tmpFile); } catch { ;} } } catch(Exception e) { ;} return ms; }
public System.IO.Stream DoResampler(DriverModels.EngineInput Args) { System.IO.MemoryStream ms = new System.IO.MemoryStream(); if (!_isLegalPlugin) return ms; if (DoResamplerMethod != null) { object inputarg = CopyObjectToNewType(Args,DoResamplerMethod.GetParameters()[0].ParameterType); object ret = DoResamplerMethod.Invoke(null, new object[1] { inputarg }); DriverModels.EngineOutput Out = (DriverModels.EngineOutput)CopyObjectToNewType(ret, typeof(DriverModels.EngineOutput)); ms = new System.IO.MemoryStream(Out.wavData); } return ms; }
public System.IO.Stream DoResampler(DriverModels.EngineInput Args) { System.IO.MemoryStream ms = new System.IO.MemoryStream(); if (!_isLegalPlugin) return ms; try { IntPtr hModule = LoadLibrary(DllPath); if (hModule == IntPtr.Zero) _isLegalPlugin = false; else { IntPtr m = GetProcAddress(hModule, "DoResampler"); if (m != IntPtr.Zero) { DoResamplerDelegate g = (DoResamplerDelegate)Marshal.GetDelegateForFunctionPointer(m, typeof(DoResamplerDelegate)); DriverModels.EngineOutput Output = Intptr2EngineOutput(g(Args)); ms = new System.IO.MemoryStream(Output.wavData); } FreeLibrary(hModule); } } catch { ;} return ms; }