public void SetAudioLocation(AudioInstrument audio, string path) { if (File.Exists(path)) { audioLocations[(int)audio] = Path.GetFullPath(path); } }
IEnumerator LoadAudio(string filepath, AudioInstrument audio, GameObject coroutine) { int audioStreamArrayPos = (int)audio; if (filepath != string.Empty && File.Exists(filepath)) { #if TIMING_DEBUG float time = Time.realtimeSinceStartup; #endif // Check for valid extension if (!Utility.validateExtension(filepath, Globals.validAudioExtensions)) { throw new System.Exception("Invalid file extension"); } filepath = filepath.Replace('\\', '/'); // Record the filepath audioLocations[audioStreamArrayPos] = Path.GetFullPath(filepath); ++audioLoads; System.Threading.Thread streamCreateFileThread = new System.Threading.Thread(() => { // Load Bass Audio Streams audioSampleData[audioStreamArrayPos].Free(); audioSampleData[audioStreamArrayPos] = new SampleData(filepath); audioSampleData[audioStreamArrayPos].ReadAudioFile(); bassAudioStreams[audioStreamArrayPos] = Bass.BASS_StreamCreateFile(filepath, 0, 0, BASSFlag.BASS_STREAM_DECODE | BASSFlag.BASS_ASYNCFILE | BASSFlag.BASS_STREAM_PRESCAN); bassAudioStreams[audioStreamArrayPos] = Un4seen.Bass.AddOn.Fx.BassFx.BASS_FX_TempoCreate(bassAudioStreams[audioStreamArrayPos], BASSFlag.BASS_FX_FREESOURCE); }); streamCreateFileThread.Start(); while (streamCreateFileThread.ThreadState == System.Threading.ThreadState.Running) { yield return(null); } --audioLoads; #if TIMING_DEBUG Debug.Log("Audio load time: " + (Time.realtimeSinceStartup - time)); #endif Debug.Log("Finished loading audio"); } else { if (filepath != string.Empty) { Debug.LogError("Unable to locate audio file: " + filepath); } } GameObject.Destroy(coroutine); }
public void SetBassAudioStream(AudioInstrument audio, TempoStream stream) { int arrayPos = (int)audio; if (bassAudioStreams[arrayPos] != null) { bassAudioStreams[arrayPos].Dispose(); } bassAudioStreams[arrayPos] = stream; }
public void SetAudioLocation(AudioInstrument audio, string path) { if (File.Exists(path)) { audioLocations[(int)audio] = Path.GetFullPath(path); } else if (string.IsNullOrEmpty(path)) { audioLocations[(int)audio] = string.Empty; } }
void LoadAudio(string filepath, AudioInstrument audio) { int audioStreamArrayPos = (int)audio; if (filepath != string.Empty && File.Exists(filepath)) { #if TIMING_DEBUG float time = Time.realtimeSinceStartup; #endif // Check for valid extension if (!Utility.validateExtension(filepath, Globals.validAudioExtensions)) { throw new System.Exception("Invalid file extension"); } filepath = filepath.Replace('\\', '/'); // Record the filepath audioLocations[audioStreamArrayPos] = Path.GetFullPath(filepath); ++audioLoads; // Load sample data from waveform. This creates a thread on it's own. audioSampleData[audioStreamArrayPos].Dispose(); audioSampleData[audioStreamArrayPos] = new SampleData(filepath); // Load Audio Streams if (bassAudioStreams[audioStreamArrayPos] != null) { bassAudioStreams[audioStreamArrayPos].Dispose(); } bassAudioStreams[audioStreamArrayPos] = AudioManager.LoadTempoStream(filepath); --audioLoads; #if TIMING_DEBUG Debug.Log("Audio load time: " + (Time.realtimeSinceStartup - time)); #endif Debug.Log("Finished loading audio"); } else { if (filepath != string.Empty) { Debug.LogError("Unable to locate audio file: " + filepath); } } }
public void SetBassAudioStream(AudioInstrument audio, int value) { int arrayPos = (int)audio; if (bassAudioStreams[arrayPos] != 0) { if (Bass.BASS_StreamFree(bassAudioStreams[arrayPos])) { Debug.Log("Song audio stream successfully freed"); } else { Debug.LogError("Error while attempting to free song audio stream"); } } bassAudioStreams[arrayPos] = value; }
public bool GetAudioIsLoaded(AudioInstrument audio) { TempoStream stream = GetAudioStream(audio); return(AudioManager.StreamIsValid(stream)); }
public string GetAudioLocation(AudioInstrument audio) { return(audioLocations[(int)audio]); }
public string GetAudioName(AudioInstrument audio) { return(Path.GetFileName(audioLocations[(int)audio])); }
public TempoStream GetAudioStream(AudioInstrument audio) { return(bassAudioStreams[(int)audio]); }
public SampleData GetSampleData(AudioInstrument audio) { return(audioSampleData[(int)audio]); }
public bool GetAudioIsLoaded(AudioInstrument audio) { return(GetBassAudioStream(audio) != 0); }
public int GetBassAudioStream(AudioInstrument audio) { return(bassAudioStreams[(int)audio]); }