Example #1
0
        public void ShouldAllowEmptyTimeline()
        {
            Timeline t = TimelineLoader.LoadFromText("test", "");

            Assert.AreEqual(0, t.Items.Count());
            Assert.IsFalse(t.VisibleItemsAt(0, 10).Any());
        }
Example #2
0
        /*--- Method: public ------------------------------------------------------------------------------------------------------------------------------------------*/

        /// <summary> タイムラインデータモデルを生成します。
        /// </summary>
        /// <param name="pCommonDM"> 共通データモデル </param>
        /// <param name="pTimelineDM"> 作成データを格納するタイムラインデータモデル </param>
        /// <param name="pTimerDM"> タイマーデータモデル </param>
        //public void CreateTimelineDataModel(CommonDataModel pCommonDM, TimelineDataModel pTimelineDM, TimerDataModel pTimerDM)
        public void CreateTimelineDataModel(CommonDataModel pCommonDM, TimelineObjectModel pTimelineOM)
        {
            switch (pCommonDM.AppStatusData.TimelineLoadStatus)
            {
            case TimelineLoadStatus.NowLoading:
                return;
            }

            this.TimelineDataClear(pCommonDM, pTimelineOM);

            pCommonDM.AppStatusData.TimelineLoadStatus = TimelineLoadStatus.NowLoading;
            this.TimelineFunctionEnabledChange(pCommonDM);

            Globals.SoundFilesRoot = pCommonDM.PluginSettingsData.SoundResourceDirectory;

            if (pCommonDM.SelectedTimelineFileData == null)
            {
                pCommonDM.AppStatusData.TimelineLoadStatus = TimelineLoadStatus.Failure;
                this.TimelineFunctionEnabledChange(pCommonDM);
                return;
            }

            try
            {
                TimelineLoader.LoadFromFile(pTimelineOM, pCommonDM.SelectedTimelineFileData.TimelineFileFullPath);
            }
            catch (Exception e)
            {
                pCommonDM.LogDataCollection.Add(Globals.SysLogger.WriteSystemLog.Failure.ERROR.Write(e.Message, Globals.ProjectName));
                Globals.ErrLogger.WriteStackTrace(e);
                pCommonDM.AppCommonData.TimelineLoadErrorMsg = "LoadError: " + e.Message;
                pCommonDM.AppStatusData.TimelineLoadStatus   = TimelineLoadStatus.Failure;
                this.TimelineFunctionEnabledChange(pCommonDM);

                pCommonDM.SelectedTimelineFileData.TimelineFileName     = string.Empty;
                pCommonDM.SelectedTimelineFileData.TimelineFileFullPath = string.Empty;

                return;
            }
            finally
            {
            }

            // タイムラインアイテムコレクションの生成
            foreach (var data in pTimelineOM.ActivityCollection)
            {
                // タイムラインタイプとジョブを設定
                this.timelineItemAnalyzProcess.SetTimelineType(data);
                this.timelineItemAnalyzProcess.SetTimelineJob(data);
            }

            // 最終ロードファイルの変更
            pCommonDM.PluginSettingsData.LastLoadTimelineFileName = pCommonDM.SelectedTimelineFileData.TimelineFileName;
            pCommonDM.PluginSettingsData.LastLoadTimelineFullPath = pCommonDM.SelectedTimelineFileData.TimelineFileFullPath;

            pCommonDM.ViewRefresh();
            pCommonDM.AppStatusData.TimelineLoadStatus = TimelineLoadStatus.Success;
            this.TimelineFunctionEnabledChange(pCommonDM);
        }
 public void TestIncludedTimelineFiles()
 {
     Globals.ResourceRoot = ".";
     foreach (var filepath in Globals.TimelineTxtsInResourcesDir)
     {
         TimelineLoader.LoadFromFile(filepath);
     }
 }
        public void EOLAtEOFShouldBeOptional()
        {
            Timeline timeline = TimelineLoader.LoadFromText("test", "1 テスト");
            var      items    = timeline.Items.ToList();

            Assert.AreEqual(1, items.Count);
            Assert.AreEqual(1.0, items.First().TimeFromStart);
            Assert.AreEqual("テスト", items.First().Name);
        }
        public void TestTimelineStatementBasic()
        {
            Timeline timeline = TimelineLoader.LoadFromText("test", "1 テスト\n");
            var      items    = timeline.Items.ToList();

            Assert.AreEqual(1, items.Count);
            Assert.AreEqual(1.0, items.First().TimeFromStart);
            Assert.AreEqual("テスト", items.First().Name);
        }
        public void TestTimelineStatementRegression()
        {
            Timeline timeline = TimelineLoader.LoadFromText("test", "0 \"asdf\" sync /aaa/ window 999\n1 bbb\n");
            var      items    = timeline.Items.ToList();

            Assert.AreEqual(2, items.Count);
            Assert.AreEqual(0.0, items.First().TimeFromStart);
            Assert.AreEqual("asdf", items.First().Name);
        }
Example #7
0
        public void ActivitiesWithSameTimeToStartShouldBeAccepted()
        {
            string txt = "";

            for (int i = 0; i < 10; ++i)
            {
                txt += String.Format("1 {0}\n", i);
            }
            Timeline t = TimelineLoader.LoadFromText("test", txt);
        }
Example #8
0
        public void AnchorWindowShouldBeRespected()
        {
            Timeline       t = TimelineLoader.LoadFromText("test", "100 テスト sync /a/ window 20,30\n");
            TimelineAnchor a = t.Anchors.First();

            Assert.AreSame(a, t.FindAnchorMatchingLogline(100, "a"), "With in window");
            Assert.AreSame(a, t.FindAnchorMatchingLogline(81, "a"), "With in before window");
            Assert.AreSame(a, t.FindAnchorMatchingLogline(129, "a"), "With in after window");

            Assert.IsNull(t.FindAnchorMatchingLogline(79, "a"), "Out of before window");
            Assert.IsNull(t.FindAnchorMatchingLogline(131, "a"), "Out of after window");
        }
        public void TestTimelineStatementWithBeforeAndAfterWindow()
        {
            Timeline timeline = TimelineLoader.LoadFromText("test", "1 テスト sync /「テスト」の構え/ window 10, 20\n");
            var      items    = timeline.Items.ToList();

            Assert.AreEqual(1, items.Count);
            Assert.AreEqual(1.0, items.First().TimeFromStart);
            Assert.AreEqual("テスト", items.First().Name);

            var anchors = timeline.Anchors.ToList();

            Assert.AreEqual(1, anchors.Count);
            Assert.AreEqual("「テスト」の構え", anchors.First().Regex.ToString());
            Assert.AreEqual(10, anchors.First().WindowBefore);
            Assert.AreEqual(20, anchors.First().WindowAfter);
        }
Example #10
0
        public void VisibleItemsAtShouldReturnActivitiesWithSameStartTime()
        {
            string txt = "";

            for (int i = 0; i < 10; ++i)
            {
                txt += String.Format("{0} {0}a\n", i);
                txt += String.Format("{0} {0}b\n", i);
                txt += String.Format("{0} {0}c\n", i);
            }
            Timeline t = TimelineLoader.LoadFromText("test", txt);

            {
                var visibleItemsStr = t.VisibleItemsAt(5.1, 10).Select(a => a.Name).Aggregate((a, n) => a + " " + n);
                Assert.AreEqual("6a 6b 6c 7a 7b 7c 8a 8b 8c 9b", visibleItemsStr);
            }
            {
                var visibleItemsStr = t.VisibleItemsAt(5, 10).Select(a => a.Name).Aggregate((a, n) => a + " " + n);
                Assert.AreEqual("6a 6b 6c 7a 7b 7c 8a 8b 8c 9b", visibleItemsStr);
            }
        }
Example #11
0
        public void VisibleItemsAtShouldReturnUnfinishedActivities()
        {
            string txt = "";

            for (int i = 0; i < 10; ++i)
            {
                txt += String.Format("{0} {0}\n", i);
            }
            Timeline t = TimelineLoader.LoadFromText("test", txt);

            {
                var visibleItems = t.VisibleItemsAt(5.1, 10).ToList();
                Assert.AreEqual(4, visibleItems.Count);
            }
            {
                var visibleItems = t.VisibleItemsAt(5, 10).ToList();
                Assert.AreEqual(4, visibleItems.Count);
            }
            {
                var visibleItems = t.VisibleItemsAt(4.9, 10).ToList();
                Assert.AreEqual(5, visibleItems.Count);
            }
        }
Example #12
0
        public override void OnInspectorGUI()
        {
            MenuBar.OnGUI("288078-fabricmanager", true, this.fabricManager.gameObject);
            AudioManagerEngineEditor.GetManagerInstance();
            this.undoManager.CheckUndo();
            GUILayout.BeginVertical("Box", new GUILayoutOption[0]);
            this.fabricManager._dontDestroyOnLoad    = EditorGUILayout.Toggle("Dont Destroy OnLoad: ", this.fabricManager._dontDestroyOnLoad, new GUILayoutOption[0]);
            this.fabricManager._showAllInstances     = EditorGUILayout.Toggle("Show All Instances: ", this.fabricManager._showAllInstances, new GUILayoutOption[0]);
            this.fabricManager._enableVirtualization = EditorGUILayout.Toggle("AudioComponent Virtualization: ", this.fabricManager._enableVirtualization, new GUILayoutOption[0]);
            GUILayout.BeginHorizontal(new GUILayoutOption[0]);
            this.fabricManager._createEventListeners = EditorGUILayout.Toggle("Create Event Listeners: ", this.fabricManager._createEventListeners, new GUILayoutOption[0]);
            if (this.fabricManager._createEventListeners)
            {
                this.fabricManager._useFullPathForEventListeners = EditorGUILayout.Toggle("Use full path for name:", this.fabricManager._useFullPathForEventListeners, new GUILayoutOption[0]);
            }
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal(new GUILayoutOption[0]);
            this.fabricManager.enableTimelineAssetLoader = EditorGUILayout.Toggle("Timeline Loader: ", this.fabricManager.enableTimelineAssetLoader, new GUILayoutOption[0]);
            if (this.fabricManager.enableTimelineAssetLoader && GUILayout.Button("Import ftp Project: ", new GUILayoutOption[0]))
            {
                string text = EditorUtility.OpenFilePanel("import ftp Project", "", "ftp");
                if (text.Length != 0)
                {
                    TimelineLoader.LoadFtpProject(text);
                }
            }
            GUILayout.EndHorizontal();
            this.fabricManager._enableDebugLog = EditorGUILayout.Toggle("Debug Log: ", this.fabricManager._enableDebugLog, new GUILayoutOption[0]);
            this.fabricManager._allowExternalGroupComponents = EditorGUILayout.Toggle("External Groups: ", this.fabricManager._allowExternalGroupComponents, new GUILayoutOption[0]);
            int languageByIndex = EditorGUILayout.Popup("Language: ", this.fabricManager.GetLanguageIndex(), this.fabricManager.GetLanguageNames(), new GUILayoutOption[0]);

            this.fabricManager.SetLanguageByIndex(languageByIndex);
            this.fabricManager._transitionThreshold        = (double)EditorGUILayout.Slider("Transition Threshold (sec): ", (float)this.fabricManager._transitionThreshold, 0.01f, 1f, new GUILayoutOption[0]);
            this.fabricManager._volumeThreshold            = (double)EditorGUILayout.Slider("Volume Threshold: ", (float)this.fabricManager._volumeThreshold, 0f, 1f, new GUILayoutOption[0]);
            this.fabricManager._onApplicationPauseBehavior = (FabricManager.OnApplicationPauseBehavior)EditorGUILayout.EnumPopup("On Application Pause: ", this.fabricManager._onApplicationPauseBehavior, new GUILayoutOption[0]);
            bool flag = EditorGUILayout.Toggle("Bake Component Inst: ", this.fabricManager._bakeComponentInstances, new GUILayoutOption[0]);

            if (flag != this.fabricManager._bakeComponentInstances)
            {
                if (flag)
                {
                    this.fabricManager.BakeComponentInstances();
                }
                else
                {
                    this.fabricManager.CleanBakedComponentInstances();
                }
            }
            this.fabricManager._bakeComponentInstances = flag;
            bool flag2 = EditorGUILayout.Toggle("Playmode Persistence: ", FabricEditorData.GetData()._playmodePersistance, new GUILayoutOption[0]);

            if (flag2 != FabricEditorData.GetData()._playmodePersistance)
            {
                FabricEditorData.GetData()._playmodePersistance = flag2;
                FabricEditorData.ApplyChanges();
            }
            FabricEditorData.GetData()._enableHiearchyIcons = EditorGUILayout.Toggle("Show Component Icons: ", FabricEditorData.GetData()._enableHiearchyIcons, new GUILayoutOption[0]);
            GUILayout.BeginHorizontal(new GUILayoutOption[0]);
            EditorGUILayout.LabelField("Editor Path: " + this.fabricManager._fabricEditorPath, new GUILayoutOption[0]);
            if (GUILayout.Button("Set Path", new GUILayoutOption[0]))
            {
                this.fabricManager._fabricEditorPath = AudioManagerEngineEditor.SetFabricEditorPath(this.fabricManager._fabricEditorPath);
            }
            GUILayout.EndHorizontal();
            GUILayout.EndVertical();
            this.AddRemoveAudioMixerDebugLogComponents();
            GUILayout.BeginHorizontal("Box", new GUILayoutOption[0]);
            this.fabricManager._forceAxisVector = EditorGUILayout.Vector3Field("Force Axis: ", this.fabricManager._forceAxisVector, new GUILayoutOption[0]);
            GUILayout.EndHorizontal();
            GUILayout.Space(5f);
            GUILayout.BeginVertical("Music Time Settings", "Box", new GUILayoutOption[0]);
            GUILayout.Space(15f);
            GUILayout.BeginHorizontal(new GUILayoutOption[0]);
            this.musicSettingName = EditorGUILayout.TextField("Name: ", this.musicSettingName, new GUILayoutOption[0]);
            if (GUILayout.Button("Add", new GUILayoutOption[0]))
            {
                MusicTimeSittings musicTimeSittings = new MusicTimeSittings();
                musicTimeSittings._name = this.musicSettingName;
                this.fabricManager._musicTimeSignatures.Add(musicTimeSittings);
            }
            GUILayout.EndHorizontal();
            GUILayout.Space(5f);
            int count = this.fabricManager._musicTimeSignatures.Count;

            if (count > 0)
            {
                string[] array = new string[count];
                for (int i = 0; i < count; i++)
                {
                    array[i] = this.fabricManager._musicTimeSignatures[i]._name;
                }
                this.selectedMusicSetting = EditorGUILayout.Popup("Music Time Settings: ", this.selectedMusicSetting, array, new GUILayoutOption[0]);
                MusicTimeSittings musicTimeSittings2 = this.fabricManager._musicTimeSignatures[this.selectedMusicSetting];
                musicTimeSittings2._name     = EditorGUILayout.TextField("Name:", musicTimeSittings2._name, new GUILayoutOption[0]);
                musicTimeSittings2._bpm      = EditorGUILayout.FloatField("Tempo: ", musicTimeSittings2._bpm, new GUILayoutOption[0]);
                musicTimeSittings2._syncType = (MusicSyncType)EditorGUILayout.EnumPopup("Sync Type: ", musicTimeSittings2._syncType, new GUILayoutOption[0]);
                GUILayout.BeginHorizontal(new GUILayoutOption[0]);
                EditorGUILayout.LabelField("Time Signature: ", new GUILayoutOption[]
                {
                    GUILayout.MaxWidth(148f)
                });
                string[] array2 = new string[17];
                for (int j = 1; j < 17; j++)
                {
                    array2[j] = j.ToString();
                }
                musicTimeSittings2._timeSignatureLower = EditorGUILayout.Popup(musicTimeSittings2._timeSignatureLower, array2, new GUILayoutOption[]
                {
                    GUILayout.MaxWidth(30f)
                });
                EditorGUILayout.LabelField(" / ", new GUILayoutOption[]
                {
                    GUILayout.MaxWidth(25f)
                });
                string[] array3 = new string[]
                {
                    "2",
                    "4",
                    "8"
                };
                int num = 0;
                for (int k = 0; k < array3.Length; k++)
                {
                    if (array3[k] == musicTimeSittings2._timeSignatureUpper.ToString())
                    {
                        num = k;
                        break;
                    }
                }
                num = EditorGUILayout.Popup(num, array3, new GUILayoutOption[]
                {
                    GUILayout.MaxWidth(30f)
                });
                musicTimeSittings2._timeSignatureUpper = int.Parse(array3[num]);
                GUILayout.EndHorizontal();
                GUILayout.Space(5f);
                AudioManagerEngineEditor.MusicSyncToTarget(musicTimeSittings2);
                GUILayout.Space(5f);
                if (this.selectedMusicSetting >= 0 && GUILayout.Button("Delete", new GUILayoutOption[0]))
                {
                    this.fabricManager._musicTimeSignatures.RemoveAt(this.selectedMusicSetting);
                    this.selectedMusicSetting = 0;
                }
            }
            GUILayout.Space(5f);
            GUILayout.EndVertical();
            GUILayout.Space(5f);
            GUILayout.BeginVertical("AudioSource Pool", "Box", new GUILayoutOption[0]);
            GUILayout.Space(20f);
            this.fabricManager._audioSourcePool = EditorGUILayout.IntField("Size: ", this.fabricManager._audioSourcePool, new GUILayoutOption[0]);
            AudioSourcePoolEditor.DisplayProperties(this.fabricManager);
            GUILayout.EndVertical();
            GUILayout.Space(5f);
            GUILayout.BeginVertical("Manager Info", "Box", new GUILayoutOption[0]);
            GUILayout.Space(10f);
            GUILayout.Label("Total gameObjects used: " + this.fabricManager._totalNumberOfGameObjectsUsed, new GUILayoutOption[0]);
            GUILayout.Space(5f);
            float num2 = this.fabricManager._totalMemoryUsed / 1024f / 1024f;

            GUILayout.Label("Total memory used: " + num2 + " Mb", new GUILayoutOption[0]);
            GUILayout.Space(10f);
            GUILayout.Label("CPU:" + this.fabricManager.profiler.percent.ToString("0.000") + "% - ms:" + this.fabricManager.profiler.msPerFrame.ToString("0.000"), new GUILayoutOption[0]);
            GUILayout.EndVertical();
            GUIHelpers.CheckGUIHasChanged(this.fabricManager.gameObject);
            this.undoManager.CheckDirty();
        }