public getUserData ( |
||
userData | ||
return | RESULT |
static FMOD.RESULT BeatEventCallback(FMOD.Studio.EVENT_CALLBACK_TYPE type, FMOD.Studio.EventInstance instance, IntPtr parameterPtr) { // Retrieve the user data IntPtr timelineInfoPtr; FMOD.RESULT result = instance.getUserData(out timelineInfoPtr); if (result != FMOD.RESULT.OK) { UnityEngine.Debug.LogError("Timeline Callback error: " + result); } else if (timelineInfoPtr != IntPtr.Zero) { // Get the object to store beat and marker details GCHandle timelineHandle = GCHandle.FromIntPtr(timelineInfoPtr); TimelineInfo timelineInfo = (TimelineInfo)timelineHandle.Target; switch (type) { case FMOD.Studio.EVENT_CALLBACK_TYPE.TIMELINE_BEAT: { var parameter = (FMOD.Studio.TIMELINE_BEAT_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_BEAT_PROPERTIES)); timelineInfo.currentMusicBeat = parameter.beat; } break; case FMOD.Studio.EVENT_CALLBACK_TYPE.TIMELINE_MARKER: { var parameter = (FMOD.Studio.TIMELINE_MARKER_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_MARKER_PROPERTIES)); timelineInfo.lastMarker = parameter.name; } break; } } return(FMOD.RESULT.OK); }
static FMOD.RESULT BeatEventCallback(FMOD.Studio.EVENT_CALLBACK_TYPE type, IntPtr instancePtr, IntPtr parameterPtr) { // Recreate the event instance object FMOD.Studio.EventInstance instance = new FMOD.Studio.EventInstance(instancePtr); // Retrieve the user data IntPtr timelineInfoPtr; instance.getUserData(out timelineInfoPtr); // Get the object to store beat and marker details GCHandle timelineHandle = GCHandle.FromIntPtr(timelineInfoPtr); TimelineInfo timelineInfo = (TimelineInfo)timelineHandle.Target; switch (type) { case FMOD.Studio.EVENT_CALLBACK_TYPE.TIMELINE_BEAT: { var parameter = (FMOD.Studio.TIMELINE_BEAT_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_BEAT_PROPERTIES)); timelineInfo.currentMusicBar = parameter.bar; } break; case FMOD.Studio.EVENT_CALLBACK_TYPE.TIMELINE_MARKER: { var parameter = (FMOD.Studio.TIMELINE_MARKER_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_MARKER_PROPERTIES)); timelineInfo.lastMarker = parameter.name; } break; } return(FMOD.RESULT.OK); }
static FMOD.RESULT BeatEventCallback(FMOD.Studio.EVENT_CALLBACK_TYPE type, FMOD.Studio.EventInstance instance, IntPtr parameterPtr) { //Debug.Log("callback"); // Retrieve the user data IntPtr timelineInfoPtr; FMOD.RESULT result = instance.getUserData(out timelineInfoPtr); if (result != FMOD.RESULT.OK) { Debug.LogError("Timeline Callback error: " + result); } else if (timelineInfoPtr != IntPtr.Zero) { // Get the object to store beat and marker details GCHandle timelineHandle = GCHandle.FromIntPtr(timelineInfoPtr); TimelineInfo timelineInfo = (TimelineInfo)timelineHandle.Target; var parameter = (FMOD.Studio.TIMELINE_BEAT_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_BEAT_PROPERTIES)); if (parameter.tempo != 0) { bpm = (int)parameter.tempo; } switch (type) { case FMOD.Studio.EVENT_CALLBACK_TYPE.TIMELINE_BEAT: { //var parameter = (FMOD.Studio.TIMELINE_BEAT_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_BEAT_PROPERTIES)); timelineInfo.currentMusicBar = parameter.bar; bar = timelineInfo.currentMusicBar; //Debug.Log("bedug 1"); timelineInfo.currentMusicBeat = parameter.beat; beat = timelineInfo.currentMusicBeat; } break; case FMOD.Studio.EVENT_CALLBACK_TYPE.TIMELINE_MARKER: { var marker_param = (FMOD.Studio.TIMELINE_MARKER_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_MARKER_PROPERTIES)); timelineInfo.lastMarker = marker_param.name; marker = timelineInfo.lastMarker; //var parameter = (FMOD.Studio.TIMELINE_BEAT_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_BEAT_PROPERTIES)); //timelineInfo.currentMusicBeat = parameter.beat; //beat = timelineInfo.currentMusicBeat; //markerEvent.Invoke(); //Debug.Log("bedug 2"); } break; } } return(FMOD.RESULT.OK); }
static private FMOD.RESULT OnEventInstanceStopped(FMOD.Studio.EVENT_CALLBACK_TYPE type, IntPtr _event, IntPtr parameters) { FMOD.Studio.EventInstance instance = new FMOD.Studio.EventInstance(_event); IntPtr data; instance.getUserData(out data); ((Stack <FMOD.Studio.EventInstance>)GCHandle.FromIntPtr(data).Target).Push(instance); return(FMOD.RESULT.OK); }
FMOD.RESULT BeatEventCallback(FMOD.Studio.EVENT_CALLBACK_TYPE type, FMOD.Studio.EventInstance instance, IntPtr parameterPtr) { IntPtr timelineInfoPtr; FMOD.RESULT result = instance.getUserData(out timelineInfoPtr); if (result != FMOD.RESULT.OK) { Debug.LogError("Timeline Callback error: " + result); } else if (timelineInfoPtr != IntPtr.Zero) { GCHandle timelineHandle = GCHandle.FromIntPtr(timelineInfoPtr); TimelineInfo timelineInfo = (TimelineInfo)timelineHandle.Target; switch (type) { case FMOD.Studio.EVENT_CALLBACK_TYPE.TIMELINE_BEAT: { var parameter = (FMOD.Studio.TIMELINE_BEAT_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_BEAT_PROPERTIES)); timelineInfo.currentBeat = parameter.beat; timelineInfo.bpm = parameter.tempo; if (OnBeat != null) { OnBeat(); } } break; case FMOD.Studio.EVENT_CALLBACK_TYPE.TIMELINE_MARKER: { var parameter = (FMOD.Studio.TIMELINE_MARKER_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_MARKER_PROPERTIES)); if (OnMarker != null) { OnMarker(); } timelineInfo.lastMarker = parameter.name; timelineInfo.lastMarkerPosition = parameter.position / 1000f; } break; case FMOD.Studio.EVENT_CALLBACK_TYPE.STOPPED: { print("stopped"); } break; } } return(FMOD.RESULT.OK); }
static FMOD.RESULT BeatEventCallback(FMOD.Studio.EVENT_CALLBACK_TYPE type, IntPtr instancePtr, IntPtr parameterPtr) { FMOD.Studio.EventInstance instance = new FMOD.Studio.EventInstance(instancePtr); // Retrieve the user data IntPtr timelineInfoPtr; FMOD.RESULT result = instance.getUserData(out timelineInfoPtr); if (result != FMOD.RESULT.OK) { Debug.LogError("Timeline Callback error: " + result); } else if (timelineInfoPtr != IntPtr.Zero) { // Get the object to store beat and marker details GCHandle timelineHandle = GCHandle.FromIntPtr(timelineInfoPtr); TimelineInfo timelineInfo = (TimelineInfo)timelineHandle.Target; switch (type) { case FMOD.Studio.EVENT_CALLBACK_TYPE.TIMELINE_BEAT: { var parameter = (FMOD.Studio.TIMELINE_BEAT_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_BEAT_PROPERTIES)); timelineInfo.currentMusicBeat = parameter.beat; beat = timelineInfo.currentMusicBeat; bpm = parameter.tempo; secPerBeat = 60f / bpm; // Event firing for on beat events. if (OnBeat != null) { OnBeat(); } // Event firing for every other beat. if (beat % 2 != 0) { if (OnOtherBeat != null) { OnOtherBeat(); } } } break; case FMOD.Studio.EVENT_CALLBACK_TYPE.TIMELINE_MARKER: { var parameter = (FMOD.Studio.TIMELINE_MARKER_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.TIMELINE_MARKER_PROPERTIES)); timelineInfo.lastMarker = parameter.name; marker = timelineInfo.lastMarker; markerTimeLinePosition = timelinePosition; if (marker.Equals("ENDGAME")) { GameManager.EndMinigame(); } // Event firing for OnMarker events. OnMarker?.Invoke(); } break; } } return(FMOD.RESULT.OK); }
static FMOD.RESULT DialogueEventCallback(FMOD.Studio.EVENT_CALLBACK_TYPE type, FMOD.Studio.EventInstance instance, IntPtr parameterPtr) { IntPtr stringPtr; instance.getUserData(out stringPtr); GCHandle stringHandle = GCHandle.FromIntPtr(stringPtr); String key = stringHandle.Target as String; switch (type) { case FMOD.Studio.EVENT_CALLBACK_TYPE.CREATE_PROGRAMMER_SOUND: { FMOD.MODE soundMode = FMOD.MODE.LOOP_NORMAL | FMOD.MODE.CREATECOMPRESSEDSAMPLE | FMOD.MODE.NONBLOCKING; var parameter = (FMOD.Studio.PROGRAMMER_SOUND_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.PROGRAMMER_SOUND_PROPERTIES)); if (key.Contains(".")) { FMOD.Sound dialogueSound; var soundResult = FMODUnity.RuntimeManager.CoreSystem.createSound(Application.streamingAssetsPath + "/" + key, soundMode, out dialogueSound); if (soundResult == FMOD.RESULT.OK) { parameter.sound = dialogueSound.handle; parameter.subsoundIndex = -1; Marshal.StructureToPtr(parameter, parameterPtr, false); } } else { FMOD.Studio.SOUND_INFO dialogueSoundInfo; var keyResult = FMODUnity.RuntimeManager.StudioSystem.getSoundInfo(key, out dialogueSoundInfo); if (keyResult != FMOD.RESULT.OK) { break; } FMOD.Sound dialogueSound; var soundResult = FMODUnity.RuntimeManager.CoreSystem.createSound(dialogueSoundInfo.name_or_data, soundMode | dialogueSoundInfo.mode, ref dialogueSoundInfo.exinfo, out dialogueSound); if (soundResult == FMOD.RESULT.OK) { parameter.sound = dialogueSound.handle; parameter.subsoundIndex = dialogueSoundInfo.subsoundindex; Marshal.StructureToPtr(parameter, parameterPtr, false); } } } break; case FMOD.Studio.EVENT_CALLBACK_TYPE.DESTROY_PROGRAMMER_SOUND: { var parameter = (FMOD.Studio.PROGRAMMER_SOUND_PROPERTIES)Marshal.PtrToStructure(parameterPtr, typeof(FMOD.Studio.PROGRAMMER_SOUND_PROPERTIES)); var sound = new FMOD.Sound(); sound.handle = parameter.sound; sound.release(); } break; case FMOD.Studio.EVENT_CALLBACK_TYPE.DESTROYED: stringHandle.Free(); break; } return(FMOD.RESULT.OK); }