public LocalChannelPlaySource(string path) { Path = path; Stream = Bass.BASS_SampleLoad(path, 0L, 0, 1, BASSFlag.BASS_DEFAULT); StreamFX = Stream; ChannelInfo = Bass.BASS_ChannelGetInfo(Stream); Tags = new TrackTags(Stream, SourceType); }
public LocalModPlaySource(string path) { Path = path; Stream = Bass.BASS_MusicLoad(path, 0, 0, BASSFlag.BASS_DEFAULT | BASSFlag.BASS_STREAM_DECODE|BASSFlag.BASS_MUSIC_DECODE, 0); StreamFX = BassFx.BASS_FX_TempoCreate(Stream, BASSFlag.BASS_FX_FREESOURCE | BASSFlag.BASS_MUSIC_FX); ChannelInfo = Bass.BASS_ChannelGetInfo(Stream); Tags = new TrackTags(Stream, SourceType); }
public LocalStreamPlaySource(string path) { Path = path; Stream = Bass.BASS_StreamCreateFile(path, 0, 0, BASSFlag.BASS_SAMPLE_FLOAT | BASSFlag.BASS_STREAM_PRESCAN | BASSFlag.BASS_STREAM_DECODE); StreamFX = BassFx.BASS_FX_TempoCreate(Stream, BASSFlag.BASS_FX_FREESOURCE | BASSFlag.BASS_SAMPLE_FX); ChannelInfo = Bass.BASS_ChannelGetInfo(Stream); Tags = new TrackTags(Stream,SourceType); }
public HttpInfinitePlaySource(string address, DownloadTypes downloadMode, IEventAggregator positionEventAggregator) { OnGetPosition += RefreshPositions; _positionEventAggregator = positionEventAggregator; _subscriptionToken = _positionEventAggregator.GetEvent<HttpPositionEvent>().Subscribe(GetReadPosition); _downloadType = downloadMode; _downloadProcURL = (_downloadType == DownloadTypes.NoDownload) ? null : new DOWNLOADPROC(DownloadProc); Path = address; DownloadStream = Bass.BASS_StreamCreateURL(Path, 0, BASSFlag.BASS_STREAM_AUTOFREE|BASSFlag.BASS_STREAM_STATUS |BASSFlag.BASS_SAMPLE_FLOAT, _downloadProcURL, IntPtr.Zero); BASSError error = Bass.BASS_ErrorGetCode(); if (DownloadStream == 0) throw new ArgumentException("Parameter cannot be null", error.ToString()); _syncProcMeta = new SYNCPROC(SyncMethodMeta); Bass.BASS_ChannelSetSync(DownloadStream, BASSSync.BASS_SYNC_WMA_META, 0, _syncProcMeta, IntPtr.Zero); Bass.BASS_ChannelSetSync(DownloadStream, BASSSync.BASS_SYNC_OGG_CHANGE, 0, _syncProcMeta, IntPtr.Zero); Bass.BASS_ChannelSetSync(DownloadStream, BASSSync.BASS_SYNC_META, 0, _syncProcMeta, IntPtr.Zero); Bass.BASS_ChannelSetSync(DownloadStream, BASSSync.BASS_SYNC_WMA_CHANGE, 0, _syncProcMeta, IntPtr.Zero); _previousTags = new List<Tag>(); Tags = new TrackTags(DownloadStream, SourceType); Tags.GetIcyMetaTags(DownloadStream); ChannelInfo = Bass.BASS_ChannelGetInfo(DownloadStream); if (ProcessMusic()) { _bufferFileStream = new FileStream("RadioBuffer", FileMode.OpenOrCreate, FileAccess.ReadWrite); _DSPHandler = new DSPPROC(DSPProc); _streamProc = new STREAMPROC(StreamRead); DSP = Bass.BASS_ChannelSetDSP(DownloadStream, _DSPHandler, IntPtr.Zero, 0); Stream = Bass.BASS_StreamCreate(ChannelInfo.freq, ChannelInfo.chans, BASSFlag.BASS_STREAM_DECODE|BASSFlag.BASS_SAMPLE_FLOAT, _streamProc, IntPtr.Zero); Bass.BASS_ChannelPlay(DownloadStream, false); Bass.BASS_ChannelSetAttribute(DownloadStream, BASSAttribute.BASS_ATTRIB_VOL, 0); StreamFX = BassFx.BASS_FX_TempoCreate(Stream, BASSFlag.BASS_FX_FREESOURCE | BASSFlag.BASS_SAMPLE_FX); } else { error = Bass.BASS_ErrorGetCode(); throw new ArgumentException("Parameter cannot be null", error.ToString()); } }
public HttpFinitePlaySource(string address, IEventAggregator waveFormEventAggregator) { OnGetWaveForm += EndDownload; _waveFormEventAggregator = waveFormEventAggregator; _downloadProc = new DOWNLOADPROC(Download); Path = address; Stream = Bass.BASS_StreamCreateURL(Path, 0, BASSFlag.BASS_STREAM_DECODE|BASSFlag.BASS_SAMPLE_FLOAT|BASSFlag.BASS_STREAM_PRESCAN, _downloadProc, IntPtr.Zero); Tags = new TrackTags(Stream, SourceType); StreamFX = BassFx.BASS_FX_TempoCreate(Stream, BASSFlag.BASS_FX_FREESOURCE | BASSFlag.BASS_SAMPLE_FX); ChannelInfo = Bass.BASS_ChannelGetInfo(StreamFX); Console.WriteLine("Chans - {0}, Ctype - {1}, Flags - {2}, Freq - {3}", ChannelInfo.chans, ChannelInfo.ctype, ChannelInfo.flags, ChannelInfo.freq); }
public MemoryStreamPlaySource(string path) { Path = path; FileStream fs = File.OpenRead(path); int length = (int)fs.Length; Buffer = new byte[length]; fs.Read(Buffer, 0, length); fs.Close(); _hGCFile = GCHandle.Alloc(Buffer, GCHandleType.Pinned); Stream = Bass.BASS_StreamCreateFile(_hGCFile.AddrOfPinnedObject(), 0L, length, BASSFlag.BASS_SAMPLE_FLOAT| BASSFlag.BASS_STREAM_DECODE); StreamFX = BassFx.BASS_FX_TempoCreate(Stream, BASSFlag.BASS_FX_FREESOURCE|BASSFlag.BASS_SAMPLE_FX); ChannelInfo = Bass.BASS_ChannelGetInfo(StreamFX); Console.WriteLine("Chans - {0}, Ctype - {1}, Flags - {2}, Freq - {3}", ChannelInfo.chans, ChannelInfo.ctype , ChannelInfo.flags , ChannelInfo.freq); Tags = new TrackTags(Stream, SourceType); }
public Task <bool> WriteTags(Uri trackLocation, TrackTags tags) { throw new NotImplementedException(); }