private static void OnQos(IntPtr p, long current_jitter, ulong current_running_time, ulong current_stream_time, ulong current_timestamp, double proportion, ulong processed, ulong dropped) { GstUnityBridgeTexture self = ((GCHandle)p).Target as GstUnityBridgeTexture; if (self != null) { if (self.m_Events.m_OnQOS != null) { self.m_EventProcessor.QueueEvent(() => { QosData data = new QosData() { current_jitter = current_jitter, current_running_time = current_running_time, current_stream_time = current_stream_time, current_timestamp = current_timestamp, proportion = proportion, processed = processed, dropped = dropped }; self.m_Events.m_OnQOS.Invoke(data); }); } } }
private static void OnError(IntPtr p, string message) { GstUnityBridgeTexture self = ((GCHandle)p).Target as GstUnityBridgeTexture; if (self.m_Events.m_OnError != null) { self.m_EventProcessor.QueueEvent(() => { self.m_Events.m_OnError.Invoke(message); }); } }
private static void OnFinish(IntPtr p) { GstUnityBridgeTexture self = ((GCHandle)p).Target as GstUnityBridgeTexture; self.m_EventProcessor.QueueEvent(() => { if (self.m_Events.m_OnFinish != null) { self.m_Events.m_OnFinish.Invoke(); } if (self.m_Loop) { self.Position = 0; } }); }
IEnumerator Start() { bmsLoader = GameObject.Find("BMSLoader").GetComponent<BMSLoader>(); bmsLoader.loadBMS(); bms = bmsLoader.bms; yield return new WaitForSeconds(0.1f); Time.timeScale = 0.0f; //set camera variables worldScreenHeight = Camera.main.orthographicSize * 2; worldScreenWidth = worldScreenHeight / Screen.height * Screen.width; if(bms == null) { Debug.Log("Parsing Failed"); } currBpm = bms.info.init_bpm; //get components bgImage = bga.GetComponent<SpriteRenderer>(); layerImage = bgaLayer.GetComponent<SpriteRenderer>(); gstBga = bgaVideo.GetComponent<GstUnityBridgeTexture>(); gstLayer = bgaLayerVideo.GetComponent<GstUnityBridgeTexture>(); //set variables ulong maxSoundObjectId = 0; ulong maxBgaHeaderId = 0; foreach (BmsEvent be in bms.bmsEvents) { if (be.eventType == BMSParser.EventType.NoteEvent && ((NoteEvent)be).id > maxSoundObjectId) maxSoundObjectId = ((NoteEvent)be).id; } foreach (BGAHeader bh in bms.bga.bga_header) { if (bh.id > maxBgaHeaderId) { maxBgaHeaderId = bh.id; } } bgaSprites = new Sprite[maxBgaHeaderId+10]; layerSprites = new Sprite[maxBgaHeaderId+10]; eventLength = bms.bmsEvents.Count; pulseConstant = bms.info.init_bpm * bms.info.resolution / (60 * 4); lastPulse = bms.bmsEvents[bms.bmsEvents.Count - 1].y; resolution = bms.info.resolution; judge = GameObject.Find("Judge"); judgeImage = GameObject.Find("JudgeImage").GetComponent<UnityEngine.UI.Image>(); titleText = GameObject.Find("TitleText").GetComponent<Text>(); subtitleText = GameObject.Find("SubtitleText").GetComponent<Text>(); artistText = GameObject.Find("ArtistText").GetComponent<Text>(); bpmText = GameObject.Find("BpmText").GetComponent<Text>(); bgaText = GameObject.Find("BgaText").GetComponent<Text>(); layerText = GameObject.Find("LayerText").GetComponent<Text>(); pulseText = GameObject.Find("PulseText").GetComponent<Text>(); genreText = GameObject.Find("GenreText").GetComponent<Text>(); timeText = GameObject.Find("TimeText").GetComponent<Text>(); measureText = GameObject.Find("MeasureText").GetComponent<Text>(); totalText = GameObject.Find("TotalText").GetComponent<Text>(); resolutionText = GameObject.Find("ResolutionText").GetComponent<Text>(); soundText = GameObject.Find("SoundCountText").GetComponent<Text>(); comboText = GameObject.Find("ComboText").GetComponent<Text>(); loadingStatusText = GameObject.Find("LoadingStatusText").GetComponent<Text>(); soundObjects = new GameObject[1296]; //set Text titleText.text = "Title: " + bms.info.title; subtitleText.text = "Subtitle: " + bms.info.subtitle; artistText.text = "Artist: " + bms.info.artist; bpmText.text = "Bpm: " + bms.info.init_bpm; genreText.text = "Genre: " + bms.info.genre; totalText.text = "Total: " + bms.info.total; measureText.text = "Measure: 0/" + bms.info.maxMeasure; resolutionText.text = "Resolution: " + bms.info.resolution; loadingStatusText.text = "Loading BGA..."; yield return null; LoadBga(); loadingStatusText.text = "Loading Sound..."; yield return null; LoadSound(bms.info.soundHeaders); loadingStatusText.text = "Drawing Notes..."; yield return null; NotePlacement(); Component[] sources = FindObjectsOfType(typeof(AudioSource)) as Component[]; audioSources = new AudioSource[sources.Length]; sources.CopyTo(audioSources, 0); //Check how many sounds are playing.. InvokeRepeating("CurrentlyPlaying", 1f, 0.5f); DrawBMSGraph dbg = graphPanel.GetComponent<DrawBMSGraph>(); dbg.DrawGraph(bms.bmsEvents); loadingStatusText.text = "Done"; yield return null; loadingScreen.SetActive(false); isLoaded = true; timeOffset = Time.time; dbg.timeOffset = timeOffset; Time.timeScale = 1.0f; }