public IObservable <Unit> Initialize(string name) { // set cue info cueSheet.name = name; cueSheet.acbFile = name + ".acb"; cueSheet.awbFile = name + ".awb"; if (!CriSoundUtility.AddCueSheet(cueSheet)) { throw new ArgumentException(); } CriAtomExAcb acb = CriAtom.GetAcb(name); CriAtomEx.CueInfo cueInfo; if (!acb.GetCueInfo(name, out cueInfo)) { throw new ArgumentException(); } Length = cueInfo.length; return(Observable .ReturnUnit() .Do(_ => CriAtomExLatencyEstimator.InitializeModule()) .SelectMany(_ => Observable .EveryUpdate() .Select(__ => CriAtomExLatencyEstimator.GetCurrentInfo()) .Where(x => x.status == CriAtomExLatencyEstimator.Status.Processing)) .Do(x => EstimatedLatency = x.estimated_latency) .Do(_ => CriAtomExLatencyEstimator.FinalizeModule()) .AsUnitObservable()); }
public void AddCueSheet(CriAtomCueSheet cueSheet) { if (!CriSoundUtility.AddCueSheet(cueSheet)) { return; } var acb = CriAtom.GetAcb(cueSheet.name); if (acb == null) { Debug.unityLogger.LogError(GetType().Name, "NotFound cue sheet"); return; } foreach (var cue in acb.GetCueInfoList()) { cueSheetDictionary.Add(cue.name, cueSheet.name); } }
public void Dispose() { CriSoundUtility.RemoveCueSheet(cueSheet); UnityEngine.Object.Destroy(bgmSource); UnityEngine.Object.Destroy(seSource); }