/// <summary>
        /// Load the view from from the provided JSON
        /// </summary>
        /// <param name="root">The JSON-object containing the serialized view</param>
        /// <param name="archive">Optional archive that the data points should be loaded from</param>
        /// <returns></returns>
        public async Task DeserializeView(JObject root, IDataStructure archive = null)
        {
            if (!await SerializableViewHelper.EnsureViewType(root, this, false, true))
            {
                return;
            }

            var figures = XamarinHelpers.GetAllChildElements <FigureView>(PlayerContainer);

            foreach (var figure in figures)
            {
                figure.RemoveThisView();
            }

            PlayerContainer.ViewerContext          = ViewerContext;
            FigureView.DeserializationFailedWarned = false;
            if (root["player_container"] is JObject playerContainerJson)
            {
                await PlayerContainer.DeserializeView(playerContainerJson, archive);
            }
            if (root["playbar"] is JObject playbarJson)
            {
                await Playbar.DeserializeView(playbarJson, archive);
            }
        }
        /// <summary>
        /// Store the important parts of the objects in the provided JSON object (or a new one if the provided one is null)
        /// </summary>
        /// <param name="root">The JSON object the view should be stored in</param>
        /// <returns>The serialized JSON-view</returns>
        public JObject SerializeView(JObject root = null)
        {
            root = SerializableViewHelper.SerializeDefaults(root, this);

            root["player_container"] = PlayerContainer.SerializeView();
            root["playbar"]          = Playbar.SerializeView();

            return(root);
        }
Exemplo n.º 3
0
        private void Awake()
        {
            notes.Reverse();
            _rows = new Row[notes.Count];
            var parent = rowParent;

            for (var i = parent.childCount - 1; i > 0; i--)
            {
                Destroy(parent.GetChild(i).gameObject);
            }

            for (var i = 0; i < _rows.Length; i++)
            {
                _rows[i] = Instantiate(rowPrefab, parent);
                _rows[i]
                .Set(
                    notes[i].noteName,
                    notes[i].frequency,
                    0.27f - 0.01f * i
                    );
            }

            playbar = Instantiate(playbarPrefab, parent);
        }
Exemplo n.º 4
0
        public MainWindow()
        {
            InitializeComponent();

            // Play startup animation if enabled
            if (App.Settings.IntroEnabled)
            {
                Storyboard sb = FindResource("Startup") as Storyboard;
                sb.Begin();

                IntroVideo.Source = new Uri("pack://siteoforigin:,,,/Assets/Intro.mov", UriKind.Absolute);
            }

            MainVM = new MainViewModel();
            Playbar.SetViewModel(MainVM.PlaybarVM);

            DataContext = MainVM;

            PlaylistContent.AddPlaylist.Click += (object sender, RoutedEventArgs e) =>
            {
                NewPlaylistDialog.Visibility = Visibility.Visible;
            };
            NewPlaylistDialog.CreateBttn.Click += (object sender, RoutedEventArgs e) =>
            {
                bool IsFolderBased = NewPlaylistDialog.TypeToggle.IsChecked != true;

                if (!IsFolderBased)
                {
                    using (var dialog = new OpenFileDialog {
                        Title = "Select tracks to add", Multiselect = true
                    })
                    {
                        dialog.Filter = "MP3 files|*.mp3";

                        if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            if (dialog.FileNames.Length == 0)
                            {
                                return;
                            }

                            MainVM.PlaylistsVM.AddPlaylist(NewPlaylistDialog.NewPlaylistName.Text, dialog.FileNames);
                        }
                        else
                        {
                            return;
                        }
                    }
                }
                else
                {
                    using (var dialog = new FolderBrowserDialog())
                    {
                        if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            if (Directory.GetFiles(dialog.SelectedPath, "*.mp3").Length == 0)
                            {
                                return;
                            }
                            MainVM.PlaylistsVM.AddPlaylist(NewPlaylistDialog.NewPlaylistName.Text, dialog.SelectedPath);
                        }
                        else
                        {
                            return;
                        }
                    }
                }

                NewPlaylistDialog.CancelBttn_Click(null, null);
            };

            SettingsContent.AppRestartRequired += () =>
            {
                RestartDialog.Visibility = Visibility.Visible;
            };
        }
 private void TreeView_UseInTimelineTapped(object sender, IDataPoint datapoint)
 {
     Playbar.UseDataPointForTimelinePreview(datapoint);
 }