Exemple #1
0
 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);
    }
Exemple #3
0
    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;
     }
 }
Exemple #5
0
    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;
    }
Exemple #7
0
    public bool GetAudioIsLoaded(AudioInstrument audio)
    {
        TempoStream stream = GetAudioStream(audio);

        return(AudioManager.StreamIsValid(stream));
    }
Exemple #8
0
 public string GetAudioLocation(AudioInstrument audio)
 {
     return(audioLocations[(int)audio]);
 }
Exemple #9
0
 public string GetAudioName(AudioInstrument audio)
 {
     return(Path.GetFileName(audioLocations[(int)audio]));
 }
Exemple #10
0
 public TempoStream GetAudioStream(AudioInstrument audio)
 {
     return(bassAudioStreams[(int)audio]);
 }
Exemple #11
0
 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]);
 }