public void RegisterStreamEvent(Vector2Int frequencyRange, TemporalConductorCallback callback) { TemporalCoordinatorEvent te = null; if (!_registeredEvents.ContainsKey (frequencyRange)) { te = new TemporalCoordinatorEvent (); _registeredEvents.Add (frequencyRange, te); } if (!_registeredEvents [frequencyRange].HasStreamEvents) { te.HasStreamEvents = true; AudioStreamEvent ase = new AudioStreamEvent (frequencyRange); ase.SetCallback (streamInternalCallback); _conductorInstance.RegisterEvent (ase); } te = _registeredEvents [frequencyRange]; if (te.Callbacks.Contains (callback)) { Debug.LogWarning ("Attempting to register same callback twice. This is not allowed. Please supply different method signature as callback."); return; } te.StreamEvent += callback; }
public void UnregisterBeatEvent(Vector2Int frequencyRange, float beatDelta,TemporalConductorCallback callback) { if (!_registeredEvents.ContainsKey (frequencyRange)) return; TemporalCoordinatorEvent te = _registeredEvents [frequencyRange]; if (te.Callbacks.Contains (callback) && te.BeatEvents.ContainsKey (beatDelta)) { te.BeatEvents [beatDelta].Event -= callback; te.Callbacks.Remove (callback); } }
public void UnregisterStreamEvent(Vector2Int frequencyRange, TemporalConductorCallback callback) { if (!_registeredEvents.ContainsKey (frequencyRange)) return; TemporalCoordinatorEvent te = _registeredEvents [frequencyRange]; if (te.Callbacks.Contains (callback)) { te.StreamEvent -= callback; te.Callbacks.Remove (callback); } }
//make the programmer want it :p public void SetCallback(TemporalConductorCallback cb) { _callback = cb; }
public void RegisterBeatEvent(Vector2Int frequencyRange, float beatDelta,int halfFFTWindow,TemporalConductorCallback callback) { if (beatDelta == 0) { Debug.LogError ("Attempting to register beat event with 0 beat delta. This is not allowed."); return; } TemporalCoordinatorEvent te = null; if (!_registeredEvents.ContainsKey (frequencyRange)) { te = new TemporalCoordinatorEvent (); _registeredEvents.Add (frequencyRange, te); } te = _registeredEvents [frequencyRange]; if (!te.BeatEvents.ContainsKey (beatDelta)) { te.BeatEvents.Add (beatDelta, new BeatEventDatum()); BeatEvent be = new BeatEvent (frequencyRange, beatDelta,halfFFTWindow); be.SetCallback (beatInternalCallback); _conductorInstance.RegisterEvent (be); } te.BeatEvents [beatDelta].Event += callback; }