예제 #1
0
파일: Base.cs 프로젝트: pascalfr/MPfm
 /// <summary>
 /// Initializes a DirectSound device by its identifier, using the specified sample rate (frequency) 
 /// and initialization flags. To get the deviceId, use the DeviceHelper class.
 /// </summary>
 /// <param name="deviceId">Device identifier</param>
 /// <param name="frequency">Sample rate (in Hz)</param>
 /// <param name="init">Intiailization flags</param>
 public static void Init(int deviceId, int frequency, BASSInit init)
 {
     // Initialize system
     if (!Bass.BASS_Init(deviceId, frequency, init, IntPtr.Zero))
     {
         // Check for error (throw exception if the error is found)
         CheckForError();
     }
 }
예제 #2
0
        public static void InitBass([CanBeNull] BASS_DEVICEINFO deviceinfo = null, int frequency = 44100, BASSInit flags = BASSInit.BASS_DEVICE_DEFAULT)
        {
            if (IsInitialized) return;

            Bass.BASS_Init(deviceinfo == null ? -1 : SoundDevice.GetDevice(deviceinfo), frequency, flags, IntPtr.Zero)
                .CheckBass();

            IsInitialized = true;
        }
예제 #3
0
파일: BaseASIO.cs 프로젝트: pascalfr/MPfm
        /// <summary>
        /// Initializes an ASIO device by its identifier, using the specified sample rate (frequency) 
        /// and initialization flags. To get the deviceId, use the DeviceHelper class.
        /// </summary>
        /// <param name="deviceId">Device identifier</param>
        /// <param name="frequency">Sample rate (in Hz)</param>
        /// <param name="init">Intiailization flags</param>
        /// <param name="asioInit">ASIO initialization flags</param>
        public static void Init(int deviceId, int frequency, BASSInit init, BASSASIOInit asioInit)
        {
            // Initialize base device
            if (!Bass.BASS_Init(-1, frequency, init, IntPtr.Zero))
            {
                // Check for error (throw exception if the error is found)
                Base.CheckForError();            
            }

            // Initialize ASIO device
            if (!BassAsio.BASS_ASIO_Init(deviceId, asioInit))
            {
                // Check for error (throw exception if the error is found)
                Base.CheckForError();
            }   
        }
예제 #4
0
파일: BaseWASAPI.cs 프로젝트: pascalfr/MPfm
        /// <summary>
        /// Initializes a WASAPI device by its identifier, using the specified sample rate (frequency) 
        /// and initialization flags. To get the deviceId, use the DeviceHelper class. Requires a data callback.
        /// </summary>
        /// <param name="deviceId">Device identifier</param>
        /// <param name="frequency">Sample rate (in Hz)</param>
        /// <param name="channels">Number of channels</param>
        /// <param name="init">Intiailization flags</param>
        /// <param name="wasapiInit">WASAPI initialization flags</param>
        /// <param name="buffer">Buffer size</param>
        /// <param name="period">Update period</param>
        /// <param name="proc">WASAPI callback</param>
        public static void Init(int deviceId, int frequency, int channels, BASSInit init, 
            BASSWASAPIInit wasapiInit, float buffer, float period, WASAPIPROC proc)
        {
            // Initialize base device
            if (!Bass.BASS_Init(-1, frequency, init, IntPtr.Zero))
            {
                // Check for error (throw exception if the error is found)
                Base.CheckForError();  
            }

            // Initialize WASAPI device
            if (!BassWasapi.BASS_WASAPI_Init(deviceId, frequency, 2, wasapiInit, buffer, period, proc, IntPtr.Zero))
            {
                // Check for error (throw exception if the error is found)
                Base.CheckForError();
            }
        }
예제 #5
0
 /// <summary>
 /// Initializes an output device
 /// </summary>
 /// <param name="device">The device to use... -1 = default device, 0 = no sound, 1 = first real output device. BASS_GetDeviceInfo can be used to enumerate the available devices. </param>
 /// <param name="freq">Output sample rate</param>
 /// <param name="flags">A combination of these flags</param>
 public static void Init(int device, int freq, BASSInit flags = BASSInit.BASS_DEVICE_DEFAULT)
 {
     Init(device, freq, flags, IntPtr.Zero, IntPtr.Zero);
 }
예제 #6
0
 /// <summary>
 /// Initializes an output device
 /// </summary>
 /// <param name="device">The device to use... -1 = default device, 0 = no sound, 1 = first real output device. BASS_GetDeviceInfo can be used to enumerate the available devices. </param>
 /// <param name="freq">Output sample rate</param>
 /// <param name="flags">A combination of these flags</param>
 /// <param name="win">The application's main window... 0 = the desktop window (use this for console applications). This is only needed when using DirectSound output</param>
 public static void Init(int device, int freq, BASSInit flags, IntPtr win)
 {
     Init(device, freq, flags, win, IntPtr.Zero);
 }
예제 #7
0
파일: BassLib.cs 프로젝트: tynidev/BPM
 private BassLib(BASSInit options, IntPtr hwind)
 {
     Bass.BASS_Init(-1, 44100, options, hwind);
 }
예제 #8
0
파일: BASS.cs 프로젝트: TomiCode/net.BASS
 public static bool BASS_Init(int device, int freq, BASSInit flags, IntPtr win)
 {
     return BASS_Init(device, freq, flags, win, IntPtr.Zero);
 }
예제 #9
0
파일: Bass.cs 프로젝트: safawu/project2006
 public static extern bool BASS_Init(int device, int freq, BASSInit flags, IntPtr win, Guid clsid);
예제 #10
0
 /// <summary>
 ///     Constructor for BASSEngine
 /// </summary>
 /// <param name="device">Device to use (0=first, -1=default, -2=no sound)</param>
 /// <param name="freq">Output sample rate</param>
 /// <param name="flags">DeviceSetupFlags for device initialization</param>
 /// <param name="window"> Owner window (0=current foreground window)</param>
 /// <remarks>
 ///     The "no sound" device (device=-2), allows loading
 ///     and "playing" of MOD musics only (all sample/stream
 ///     functions and most other functions fail). This is so
 ///     that you can still use the MOD musics as synchronizers
 ///     when there is no soundcard present. When using device -2,
 ///     you should still set the other arguments as you would do
 ///     normally.
 /// </remarks>
 public BASSEngine(int device, int freq, BASSInit flags, [CanBeNull] IWindow window)
 {
     Init(device, freq, flags, window != null ? window.Handle : IntPtr.Zero);
     _window = window;
 }
 public bool Init(int deviceNumber, int sampleRate, BASSInit flags)
 {
     return Bass.BASS_Init(deviceNumber, sampleRate, flags, IntPtr.Zero);
 }
예제 #12
0
 public static extern bool BASS_Init(int device, int freq, BASSInit flags, IntPtr win,
                                     [In, MarshalAs(UnmanagedType.AsAny)] object clsid);
예제 #13
0
        public DirectXOutputDevice(Controller controller)
        {
            _controller              = controller;
            _DeviceState             = DeviceState.Stopped;
            _StreamWriteProcDelegate = new STREAMPROC(OutputStreamWriteProc);
            _Silence = new Silence();

            _DeviceNo = GetDeviceNo();

            BASSInit flags = BASSInit.BASS_DEVICE_DEFAULT;

            // Because all deviceinfo is saved in a static dictionary,
            // we need to determine the latency only once.
            if (!_DeviceInfos.ContainsKey(_DeviceNo))
            {
                flags |= BASSInit.BASS_DEVICE_LATENCY;
            }

            bool result = Bass.BASS_Init(
                _DeviceNo,
                44100, //Only relevant for -> pre-XP (VxD drivers)
                flags,
                IntPtr.Zero);

            BASSError?bassInitErrorCode = result ? null : new BASSError?(Bass.BASS_ErrorGetCode());

            // If the GetDeviceNo() method returned BassConstants.BassDefaultDevice, we must request the actual device number
            // of the choosen default device
            _DeviceNo = Bass.BASS_GetDevice();

            if (bassInitErrorCode.HasValue)
            {
                if (bassInitErrorCode.Value == BASSError.BASS_ERROR_ALREADY)
                {
                    if (!Bass.BASS_SetDevice(_DeviceNo))
                    {
                        throw new BassLibraryException("BASS_SetDevice");
                    }
                    bassInitErrorCode = null;
                }
            }

            if (bassInitErrorCode.HasValue)
            {
                throw new BassLibraryException("BASS_Init", bassInitErrorCode.Value);
            }

            CollectDeviceInfo(_DeviceNo);

            int ms = Convert.ToInt32(Controller.GetSettings().DirectSoundBufferSize.TotalMilliseconds);

            if (!Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_BUFFER, ms))
            {
                throw new BassLibraryException("BASS_SetConfig");
            }

            // Enable update thread while the output device is active
            if (!Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_UPDATEPERIOD, ms / 4))
            {
                throw new BassLibraryException("BASS_SetConfig");
            }
        }
예제 #14
0
 public void Initialize(int SelectedDeviceId,int SelectedFreq, BASSInit SelectedFlags)
 {
     Bass.BASS_Free();
     Bass.BASS_Init(SelectedDeviceId, SelectedFreq, SelectedFlags, IntPtr.Zero, ClsIdA3d);
 }
예제 #15
0
 /// <summary>
 /// Инициализация звуковой карты в стандартном режиме.
 /// </summary>
 /// <param name="SoundCard"></param>
 /// <param name="BitRate"></param>
 /// <param name="DeviceProperties"></param>
 public static void Initiate(int SoundCard             = -1, int BitRate = 44100,
                             BASSInit DeviceProperties = BASSInit.BASS_DEVICE_DEFAULT)
 {
     Bass.BASS_Init(SoundCard, BitRate, DeviceProperties, IntPtr.Zero);
 }
예제 #16
0
 public bool Init(int deviceNumber, int sampleRate, BASSInit flags)
 {
     return(Bass.BASS_Init(deviceNumber, sampleRate, flags, IntPtr.Zero));
 }
예제 #17
0
 /// <summary>
 /// 初始化声音输出设备
 /// </summary>
 /// <param name="device"> -1 = default device, 0 = no sound, 1 = first real output device. BASS_GetDeviceInfo can be used to enumerate the available devices. </param>
 /// <param name="freq">输出率</param>
 /// <param name="flags">A combination of these flags</param>
 public static void InitDevice(int device, int freq, BASSInit flags)
 {
     WavHelper.Init(device, freq, flags);
 }
예제 #18
0
        private void Init(int device, int freq, BASSInit flags, IntPtr hwnd)
        {
            if (_disposed)
                throw new ObjectDisposedException("BASSEngine");

            if (!Bass.BASS_Init(device, freq, flags, hwnd)) throw new BASSException();
        }
예제 #19
0
 public static extern bool BASS_Init(int device, int freq, BASSInit flags, IntPtr win, IntPtr clsid);
예제 #20
0
파일: Bass.cs 프로젝트: safawu/project2006
 public static extern bool BASS_Init(int device, int freq, BASSInit flags, IntPtr win,
                                     [In, MarshalAs(UnmanagedType.AsAny)] object clsid);
예제 #21
0
 /// <summary>
 /// Инициализация звуковой карты в стандартном режиме.
 /// </summary>
 /// <param name="SoundCard"></param>
 /// <param name="BitRate"></param>
 /// <param name="DeviceProperties"></param>
 public static void Initiate(int SoundCard             = -1, int BitRate = 44100,
                             BASSInit DeviceProperties = BASSInit.BASS_DEVICE_DEFAULT)
 {
     BassAsio.BASS_ASIO_Init(SoundCard, BASSASIOInit.BASS_ASIO_DEFAULT);
 }