예제 #1
0
파일: AcmInterop.cs 프로젝트: tabjin0/audio
 public static extern MmResult acmStreamOpen2(
     out IntPtr hAcmStream,
     IntPtr hAcmDriver,
     IntPtr sourceFormatPointer,
     IntPtr destFormatPointer,
     [In] WaveFilter waveFilter,
     IntPtr callback,
     IntPtr instance,
     AcmStreamOpenFlags openFlags);
예제 #2
0
 /// <summary>
 /// Creates a new ACM stream to convert one format to another, using a 
 /// specified driver identified and wave filter
 /// </summary>
 /// <param name="driverId">the driver identifier</param>
 /// <param name="sourceFormat">the source format</param>
 /// <param name="waveFilter">the wave filter</param>
 public AcmStream(IntPtr driverId, WaveFormat sourceFormat, WaveFilter waveFilter)
 {
     int sourceBufferSize = Math.Max(16384, sourceFormat.AverageBytesPerSecond);
     this.sourceFormat = sourceFormat;
     sourceBufferSize -= (sourceBufferSize % sourceFormat.BlockAlign);
     MmException.Try(AcmInterop.acmDriverOpen(out driverHandle, driverId, 0), "acmDriverOpen");
     MmException.Try(AcmInterop.acmStreamOpen(out streamHandle, driverHandle,
                   sourceFormat, sourceFormat, waveFilter, IntPtr.Zero, IntPtr.Zero, AcmStreamOpenFlags.NonRealTime), "acmStreamOpen");
     streamHeader = new AcmStreamHeader(streamHandle, sourceBufferSize, SourceToDest(sourceBufferSize));
 }
예제 #3
0
파일: AcmStream.cs 프로젝트: h4ltYu/EOS
        /// <summary>
        /// Creates a new ACM stream to convert one format to another, using a
        /// specified driver identified and wave filter
        /// </summary>
        /// <param name="driverId">the driver identifier</param>
        /// <param name="sourceFormat">the source format</param>
        /// <param name="waveFilter">the wave filter</param>
        // Token: 0x060007CD RID: 1997 RVA: 0x00016CE4 File Offset: 0x00014EE4
        public AcmStream(IntPtr driverId, WaveFormat sourceFormat, WaveFilter waveFilter)
        {
            int num = Math.Max(16384, sourceFormat.AverageBytesPerSecond);

            this.sourceFormat = sourceFormat;
            num -= num % sourceFormat.BlockAlign;
            MmException.Try(AcmInterop.acmDriverOpen(out this.driverHandle, driverId, 0), "acmDriverOpen");
            MmException.Try(AcmInterop.acmStreamOpen(out this.streamHandle, this.driverHandle, sourceFormat, sourceFormat, waveFilter, IntPtr.Zero, IntPtr.Zero, AcmStreamOpenFlags.NonRealTime), "acmStreamOpen");
            this.streamHeader = new AcmStreamHeader(this.streamHandle, num, this.SourceToDest(num));
        }
예제 #4
0
파일: AcmInterop.cs 프로젝트: tabjin0/audio
 public static extern MmResult acmStreamOpen(
     out IntPtr hAcmStream,
     IntPtr hAcmDriver,
     [In, MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "NAudio.Wave.WaveFormatCustomMarshaler")]
     WaveFormat sourceFormat,
     [In, MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "NAudio.Wave.WaveFormatCustomMarshaler")]
     WaveFormat destFormat,
     [In] WaveFilter waveFilter,
     IntPtr callback,
     IntPtr instance,
     AcmStreamOpenFlags openFlags);
예제 #5
0
        /// <summary>
        /// Creates a new ACM stream to convert one format to another, using a
        /// specified driver identified and wave filter
        /// </summary>
        /// <param name="driverId">the driver identifier</param>
        /// <param name="sourceFormat">the source format</param>
        /// <param name="waveFilter">the wave filter</param>
        public AcmStream(IntPtr driverId, WaveFormat sourceFormat, WaveFilter waveFilter)
        {
            int sourceBufferSize = Math.Max(16384, sourceFormat.AverageBytesPerSecond);

            this.sourceFormat = sourceFormat;
            sourceBufferSize -= (sourceBufferSize % sourceFormat.BlockAlign);
            MmException.Try(AcmInterop.acmDriverOpen(out driverHandle, driverId, 0), "acmDriverOpen");
            MmException.Try(AcmInterop.acmStreamOpen(out streamHandle, driverHandle,
                                                     sourceFormat, sourceFormat, waveFilter, IntPtr.Zero, IntPtr.Zero, AcmStreamOpenFlags.NonRealTime), "acmStreamOpen");
            streamHeader = new AcmStreamHeader(streamHandle, sourceBufferSize, SourceToDest(sourceBufferSize));
        }