Ejemplo n.º 1
0
        /// <summary>
        /// Preload all audio from <see cref="AudioClips"/>
        /// </summary>
        private static void LoadAudioClips()
        {
            // Load default paths first
            foreach (AudioClips audio in Enum.GetValues(typeof(AudioClips))) {
                // Reflection magic!
                MemberInfo memberInfo = typeof(AudioClips).GetMember(audio.ToString()).FirstOrDefault();
                AudioClipAttr audioClipAttr = (AudioClipAttr)Attribute.GetCustomAttribute(memberInfo, typeof(AudioClipAttr));

                AudioInfo audioInfo = new AudioInfo();
                audioInfo.path = audioClipAttr.path;
                audioInfo.loop = audioClipAttr.loop;
                audioInfo.stream = false;
                audioInfo.audio = null;

                _audioMap.Add(audioClipAttr.key, audio);
                _audioCache.Add(audio, audioInfo);
            }

            // Override default paths via settings
            // TODO: Implement

            // Load AudioClip objects
            // Note: No file existence check up until this step, aka no fallbacks
            foreach (AudioInfo audioInfo in _audioCache.Values.ToList()) {
                audioInfo.audio = LoadAudioClip(SysPath.GetDataPath(audioInfo.path), audioInfo.stream);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Loads an <see cref="AudioInfo"/> ready to be used by a <see cref="IAudioPlayer"/>
 /// </summary>
 /// <returns>
 /// A prepared <see cref="AudioInfo"/>
 /// </returns>
 /// <param name='path'>
 /// Path to audio file
 /// </param>
 /// <param name='loop'>
 /// Whether or not the <see cref="IAudioPlayer"/> should loop the audio
 /// </param>
 /// <param name='stream'>
 /// Whether or not the <see cref="AudioClip"/> should be fully loaded into memory or streamed from disk
 /// </param>
 public static AudioInfo LoadAudio(string path, bool loop, bool stream)
 {
     AudioInfo audioInfo = new AudioInfo();
     audioInfo.path = path;
     audioInfo.loop = loop;
     audioInfo.stream = stream;
     audioInfo.audio = LoadAudioClip(path, stream);
     return audioInfo;
 }