private async void LoadVideoPreview()
        {
            StorageFile         file;
            IRandomAccessStream stream;

            try {
                file = await KnownFolders.VideosLibrary.GetFileAsync(captureOutput);
            }
            catch (FileNotFoundException) {
                return;
            }

            stream = await file.OpenAsync(FileAccessMode.Read);

            double width  = this.ActualWidth / 4;
            double height = this.ActualHeight / 4;

            double padding = 12;

            VideoPreview.Width  = width;
            VideoPreview.Height = height;

            Canvas.SetLeft(VideoPreview, this.ActualWidth - width - padding);
            Canvas.SetTop(VideoPreview, padding);

            VideoPreview.Stop();
            VideoPreview.Source = null;
            VideoPreview.SetSource(stream, file.ContentType);
        }
示例#2
0
        int videoLen; //number of video frames;

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Public Constructor:
        /// Initialize Component
        /// Initialize mainWindow, MediaDetClass and VideoPreview
        /// </summary>
        public BatchRenameWindow()
        {
            InitializeComponent();
            controller = MainWindow.controller;
            md = new MediaDetClass();
            previewer = new VideoPreview("tmp");
        }
示例#3
0
        /// <summary>
        /// Public Constructor:
        /// Initialize Component inside Photo Preview Window
        /// Initialize video preview components
        /// Initialize various variables in Photo Preview Window
        /// Load the picture/video accordingly
        /// </summary>
        /// <param name="source">source file full path</param>
        /// <param name="target">target file full path</param>
        /// <param name="confWin">Form from which this from is accessed</param>
        public PhotoPreviewWindow(string filePath, Form previewWin)
        {
            InitializeComponent();
            md = new MediaDetClass();
            previewer = new VideoPreview("tmp");
            this.pathname = filePath;
            this.WindowState = FormWindowState.Maximized;
            this.titleBox.Text = Path.GetFileNameWithoutExtension(filePath);
            this.Text = "Preview: " + Path.GetFileNameWithoutExtension(filePath);
            preview = previewWin;
            if (Photo.isPhoto(filePath))
            {
                try
                {
                    this.pictureBox.Image = Image.FromFile(filePath);
                }
                catch (Exception pe)
                { pictureBox.Image = global::DoubleSnap.Properties.Resources.no_preview; }
            }

            else if (Video.isVideoPreviewable(filePath))
            {
                try
                {
                    previewer.deleteTmpBmpFiles(MainWindow.storagePath);
                    md.Filename = filePath;
                    md.CurrentStream = 0;
                    videoLen = (int)md.StreamLength;
                    pictureBox.Image = global::DoubleSnap.Properties.Resources.hover_mouse;
                }
                catch (Exception pe) { pictureBox.Image = global::DoubleSnap.Properties.Resources.no_preview; }
            }
            else pictureBox.Image = global::DoubleSnap.Properties.Resources.no_preview;
        }
 private void MainMap_OnCurrentPointLatLngImgChanged(GMapEditor.DAL.PointLatLngImg point)
 {
     try
     {
         if (_ChannelManageViewModel.ChannelList != null && _ChannelManageViewModel.ChannelList.Count > 0)
         {
             foreach (ChannelListItemViewModel channel in _ChannelManageViewModel.ChannelList)
             {
                 if (channel.MyChannelCfg.TcChaneelID == point.Id)
                 {
                     _ChannelManageViewModel.CurrentPointChannelListItem = channel;
                     break;
                 }
             }
         }
         if (_ChannelManageViewModel.CurrentPointChannelListItem != null)
         {
             VideoPreview video = new VideoPreview(_ChannelManageViewModel);
             video.Show();
         }
     }
     catch (Exception ex)
     {
         _WriteLog.WriteToLog("ChannelManageListBox_MouseDoubleClick", ex);
         MessageBox.Show(ex.Message);
     }
 }
示例#5
0
        int videoLen; //number of video frames;

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Public Constructor:
        /// Initialize Component inside Smart Group Window
        /// Initialize controller
        /// Initialize video preview components
        /// </summary>
        public SmartGroupWindow()
        {
            InitializeComponent();
              //mainWindow = Program.mainWindow;
            controller = MainWindow.controller;
            md = new MediaDetClass();
            previewer = new VideoPreview("tmp");
        }
示例#6
0
        int videoLen; //number of video frames;

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Public Constructor:
        /// Initialize Component inside Photo Preview Window
        /// Initialize video preview components
        /// Initialize various variables in Photo Preview Window
        public PhotoPreviewWindow()
        {
            InitializeComponent();
            this.WindowState = FormWindowState.Maximized;
            this.titleBox.Text = "Image Title Here...";
            md = new MediaDetClass();
            previewer = new VideoPreview("tmp");
        }
示例#7
0
 private void PauseVideo()
 {
     if (VideoPreview.HasVideo && VideoPreview.IsPlaying)
     {
         VideoPreview.Pause();
         Console.WriteLine("Pausing video.");
     }
 }
示例#8
0
 private void PlayVideo()
 {
     if (VideoPreview.HasVideo)
     {
         PlayingIconColour();
         VideoPreview.Play();
         Console.WriteLine("Playing video.");
     }
 }
示例#9
0
 private void OnPauseClicked(object sender, RoutedEventArgs e)
 {
     if (VideoPreview.IsPlaying)
     {
         VideoPreview.Pause();
         Console.WriteLine("Pausing video.");
         PausingIconColour();
     }
 }
示例#10
0
 private void OnPlayClicked(object sender, RoutedEventArgs e)
 {
     if (VideoPreview.HasVideo)
     {
         VideoPreview.Play();
         Console.WriteLine("Playing video.");
         PlayingIconColour();
     }
 }
示例#11
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            DisplayInformation.AutoRotationPreferences = DisplayOrientations.Landscape;

            //
            // Doing all that video processing is too much for low-end phones like the Lumia 520
            // Pick-and-choose which piece should run
            //

            VideoPreview.MediaFailed += VideoPreview_MediaFailed;
            //var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/video.cvmpilj.mjpg"));
            //var stream = await file.OpenAsync(FileAccessMode.Read);
            //var source = await HttpMjpegCaptureSource.CreateFromStreamAsync(stream, "myboundary");
            var source = await HttpMjpegCaptureSource.CreateFromUriAsync("http://216.123.238.208/axis-cgi/mjpg/video.cgi?camera&resolution=640x480");

            VideoPreview.SetMediaStreamSource(source.Source);

            var settings = new MediaCaptureInitializationSettings
            {
                StreamingCaptureMode = StreamingCaptureMode.Video
            };
            await settings.SelectVideoDeviceAsync(VideoDeviceSelection.BackOrFirst);

            _capture = new MediaCapture();
            await _capture.InitializeAsync(settings);

            var graphicsDevice = MediaGraphicsDevice.CreateFromMediaCapture(_capture);

            var previewProps = (VideoEncodingProperties)_capture.VideoDeviceController.GetMediaStreamProperties(MediaStreamType.VideoPreview);

            TextLog.Text += String.Format("Preview: {0} {1}x{2} {3}fps\n", previewProps.Subtype, previewProps.Width, previewProps.Height, previewProps.FrameRate.Numerator / (float)previewProps.FrameRate.Denominator);

            TextLog.Text += "Creating MediaSamplePresenter from SurfaceImageSource\n";

            var image = new SurfaceImageSource((int)previewProps.Width, (int)previewProps.Height);

            ImagePreview.Source = image;
            _imagePresenter     = ImagePresenter.CreateFromSurfaceImageSource(image, graphicsDevice, (int)previewProps.Width, (int)previewProps.Height);

            TextLog.Text += "Creating MediaSamplePresenter from SwapChainPanel\n";

            _swapChainPresenter = ImagePresenter.CreateFromSwapChainPanel(
                SwapChainPreview,
                graphicsDevice,
                (int)previewProps.Width,
                (int)previewProps.Height
                );

            TextLog.Text += "Creating MediaReader\n";

            _mediaReader = await MediaReader.CreateFromMediaCaptureAsync(_capture, AudioInitialization.Deselected, VideoInitialization.Bgra8);

            TextLog.Text += "Starting video loop\n";

            var ignore = Task.Run(() => VideoLoop());
        }
示例#12
0
        int videoLen; //number of video frames;

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Public Constructor:
        /// Initialize Component
        /// Initialize mainWindow and controller
        /// Set the string as jobName
        /// Initialize video preview components
        /// /// <param name="str">Job name</param>
        /// </summary>
        public PreviewWindow(string str)
        {
            InitializeComponent();

            mainWindow = Program.getMainWindow();
            controller = MainWindow.controller;

            this.str = str;

            md = new MediaDetClass();
            previewer = new VideoPreview("tmp");
        }
示例#13
0
        /// <summary>
        /// Raises the <see cref="E:System.Web.UI.Control.Init" /> event.
        /// </summary>
        /// <param name="e">An <see cref="T:System.EventArgs" /> object that contains the event data.</param>
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            RockPage.AddCSSLink("~/Plugins/com_blueboxmoon/Crex/Styles/crex.css");
            RockPage.AddScriptLink("~/Plugins/com_blueboxmoon/Crex/Scripts/crex.js");

            MenuPreview = new MenuPreview
            {
                ID      = "previewMenu",
                Visible = false
            };
            PreviewPanel.Controls.Add(MenuPreview);

            PosterListPreview = new PosterListPreview
            {
                ID      = "previewPosterList",
                Visible = false
            };
            PreviewPanel.Controls.Add(PosterListPreview);

            ImagePreview = new ImagePreview
            {
                ID      = "previewImage",
                Visible = false
            };
            PreviewPanel.Controls.Add(ImagePreview);

            VideoPreview = new VideoPreview
            {
                ID      = "previewVideo",
                Visible = false
            };
            PreviewPanel.Controls.Add(VideoPreview);

            RedirectPreview = new NotificationBox
            {
                ID = "previewRedirect",
                NotificationBoxType = NotificationBoxType.Info,
                Visible             = false
            };
            PreviewPanel.Controls.Add(RedirectPreview);

            DebugPreview = new Literal
            {
                ID = "previewDebug"
            };
            DebugPanel.Controls.Add(DebugPreview);
        }
 private void _recordersViewmodel_PropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (e.PropertyName == nameof(RecordersViewmodel.RecordingMedia))
     {
         var media = ((RecordersViewmodel)sender).RecordingMedia;
         if (media != null)
         {
             EditMedia = new MediaEditViewmodel(media, _mediaManager, PreviewViewmodel, true);
             if (PreviewViewmodel != null)
             {
                 PreviewViewmodel.Media = media;
             }
         }
     }
     if (e.PropertyName == nameof(RecordersViewmodel.Channel))
     {
         VideoPreview?.SetSource(((RecordersViewmodel)sender).Channel?.PreviewUrl);
     }
 }
        /// <summary>
        /// Gets the first 4 videos related to the specified video. Does not support paging.
        /// </summary>
        public async Task <RelatedVideos> GetRelatedVideos(RelatedVideosQuery queryParams)
        {
            // Lookup the tags for the video
            PreparedStatement tagsForVideoPrepared = await _statementCache.NoContext.GetOrAddAsync("SELECT tags FROM videos WHERE videoid = ?");

            BoundStatement tagsForVideoBound = tagsForVideoPrepared.Bind(queryParams.VideoId);
            RowSet         tagRows           = await _session.ExecuteAsync(tagsForVideoBound).ConfigureAwait(false);

            Row tagRow = tagRows.SingleOrDefault();

            if (tagRow == null)
            {
                return new RelatedVideos {
                           VideoId = queryParams.VideoId, Videos = Enumerable.Empty <VideoPreview>(), PagingState = null
                }
            }
            ;

            var tagsValue = tagRow.GetValue <IEnumerable <string> >("tags");
            var tags      = tagsValue == null ? new List <string>() : tagsValue.ToList();

            // If there are no tags, we can't find related videos
            if (tags.Count == 0)
            {
                return new RelatedVideos {
                           VideoId = queryParams.VideoId, Videos = Enumerable.Empty <VideoPreview>(), PagingState = null
                }
            }
            ;

            var relatedVideos = new Dictionary <Guid, VideoPreview>();
            PreparedStatement videosForTagPrepared = await _statementCache.NoContext.GetOrAddAsync("SELECT * FROM videos_by_tag WHERE tag = ? LIMIT ?");

            var inFlightQueries = new List <Task <RowSet> >();

            for (var i = 0; i < tags.Count; i++)
            {
                // Use the number of results we ultimately want * 2 when querying so that we can account for potentially having to filter
                // out the video Id we're using as the basis for the query as well as duplicates
                const int pageSize = RelatedVideosToReturn * 2;

                // Kick off a query for each tag and track them in the inflight requests list
                string     tag   = tags[i];
                IStatement query = videosForTagPrepared.Bind(tag, pageSize);
                inFlightQueries.Add(_session.ExecuteAsync(query));

                // Every third query, or if this is the last tag, wait on all the query results
                if (inFlightQueries.Count == 3 || i == tags.Count - 1)
                {
                    RowSet[] results = await Task.WhenAll(inFlightQueries).ConfigureAwait(false);

                    foreach (RowSet rowSet in results)
                    {
                        foreach (Row row in rowSet)
                        {
                            VideoPreview preview = MapRowToVideoPreview(row);

                            // Skip self
                            if (preview.VideoId == queryParams.VideoId)
                            {
                                continue;
                            }

                            // Skip videos we already have in the results
                            if (relatedVideos.ContainsKey(preview.VideoId))
                            {
                                continue;
                            }

                            // Add to results
                            relatedVideos.Add(preview.VideoId, preview);

                            // If we've got enough, no reason to continue
                            if (relatedVideos.Count >= RelatedVideosToReturn)
                            {
                                break;
                            }
                        }

                        // If we've got enough, no reason to continue
                        if (relatedVideos.Count >= RelatedVideosToReturn)
                        {
                            break;
                        }
                    }

                    // See if we've got enough results now to fulfill our requirement
                    if (relatedVideos.Count >= RelatedVideosToReturn)
                    {
                        break;
                    }

                    // We don't have enough yet, so reset the inflight requests to allow another batch of tags to be queried
                    inFlightQueries.Clear();
                }
            }

            return(new RelatedVideos
            {
                VideoId = queryParams.VideoId,
                Videos = relatedVideos.Values,
                PagingState = null
            });
        }
示例#16
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(VideoPreview obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }
示例#17
0
        public MediaManagerViewmodel(IEngine engine, IPreview preview)
        {
            _mediaManager = engine.MediaManager;
            _engine       = engine;
            _preview      = preview;
            if (preview != null)
            {
                PreviewViewmodel = new PreviewViewmodel(engine, preview);
            }

            MediaDirectories = new List <MediaDirectoryViewmodel>();
            MediaDirectories.AddRange(_mediaManager.IngestDirectories.Where(d => d.ContainsImport()).Select(d => new MediaDirectoryViewmodel(d, true)));
            IArchiveDirectory archiveDirectory = _mediaManager.ArchiveDirectory;

            if (archiveDirectory != null)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(archiveDirectory));
            }
            IAnimationDirectory animationDirectoryPri = _mediaManager.AnimationDirectoryPRI;

            if (animationDirectoryPri != null)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(animationDirectoryPri));
            }
            IAnimationDirectory animationDirectorySec = _mediaManager.AnimationDirectorySEC;

            if (animationDirectorySec != null)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(animationDirectorySec));
            }
            IServerDirectory serverDirectoryPri = _mediaManager.MediaDirectoryPRI;

            if (serverDirectoryPri != null)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(serverDirectoryPri));
            }
            IServerDirectory serverDirectorySec = _mediaManager.MediaDirectorySEC;

            if (serverDirectorySec != null && serverDirectorySec != serverDirectoryPri)
            {
                MediaDirectories.Insert(1, new MediaDirectoryViewmodel(serverDirectorySec));
            }

            _mediaCategory    = MediaCategories.FirstOrDefault();
            SelectedDirectory = MediaDirectories.FirstOrDefault();
            if (_mediaManager.FileManager != null)
            {
                FileManagerViewmodel = new FileManagerViewmodel(_mediaManager.FileManager);
            }
            RecordersViewmodel = new RecordersViewmodel(_engine, _mediaManager.Recorders);
            RecordersViewmodel.PropertyChanged += _recordersViewmodel_PropertyChanged;
            ComposePlugins();
            VideoPreview?.SetSource(RecordersViewmodel.Channel?.PreviewUrl);

            CommandSearch = new UICommand {
                ExecuteDelegate = _search, CanExecuteDelegate = _canSearch
            };
            CommandClearFilters = new UICommand {
                ExecuteDelegate = _clearFilters, CanExecuteDelegate = _canClearFilters
            };
            CommandDeleteSelected = new UICommand {
                ExecuteDelegate = _deleteSelected, CanExecuteDelegate = o => _isSomethingSelected() && engine.HaveRight(EngineRight.MediaDelete)
            };
            CommandIngestSelectedToServer = new UICommand {
                ExecuteDelegate = _ingestSelectedToServer, CanExecuteDelegate = _canIngestSelectedToServer
            };
            CommandMoveSelectedToArchive = new UICommand {
                ExecuteDelegate = _moveSelectedToArchive, CanExecuteDelegate = o => _selectedDirectory != null && _selectedDirectory.IsServerDirectory && _isSomethingSelected() && engine.HaveRight(EngineRight.MediaArchive) && engine.HaveRight(EngineRight.MediaDelete)
            };
            CommandCopySelectedToArchive = new UICommand {
                ExecuteDelegate = _copySelectedToArchive, CanExecuteDelegate = o => _selectedDirectory != null && _selectedDirectory.IsServerDirectory && _isSomethingSelected() && engine.HaveRight(EngineRight.MediaArchive)
            };
            CommandSweepStaleMedia = new UICommand {
                ExecuteDelegate = _sweepStaleMedia, CanExecuteDelegate = o => CurrentUser.IsAdmin
            };
            CommandGetLoudness = new UICommand {
                ExecuteDelegate = _getLoudness, CanExecuteDelegate = o => _isSomethingSelected() && engine.HaveRight(EngineRight.MediaEdit)
            };
            CommandExport = new UICommand {
                ExecuteDelegate = _export, CanExecuteDelegate = _canExport
            };
            CommandRefresh = new UICommand {
                ExecuteDelegate = ob => _refreshMediaDirectory(_selectedDirectory?.Directory), CanExecuteDelegate = _canRefresh
            };
            CommandSyncPriToSec = new UICommand {
                ExecuteDelegate = _syncSecToPri, CanExecuteDelegate = o => _selectedDirectory.IsServerDirectory && CurrentUser.IsAdmin
            };
            CommandCloneAnimation = new UICommand {
                ExecuteDelegate = _cloneAnimation, CanExecuteDelegate = _canCloneAnimation
            };
            CommandTogglePropertiesPanel = new UICommand {
                ExecuteDelegate = o => IsPropertiesPanelVisible = !IsPropertiesPanelVisible
            };
        }
示例#18
0
        public MediaManagerViewmodel(IEngine engine, IPreview preview)
        {
            _mediaManager = engine.MediaManager;
            Engine        = engine;
            _preview      = preview;
            if (preview != null)
            {
                PreviewViewmodel = new PreviewViewmodel(engine, preview);
            }

            MediaDirectories = new List <MediaDirectoryViewmodel>();
            MediaDirectories.AddRange(_mediaManager.IngestDirectories.Where(d => d.ContainsImport()).Select(d => new MediaDirectoryViewmodel(d, d.DirectoryName, true)));
            var archiveDirectory = _mediaManager.ArchiveDirectory;

            if (archiveDirectory != null)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(archiveDirectory, resources._archive));
            }
            var animationDirectorySec = _mediaManager.AnimationDirectorySEC;
            var animationDirectoryPri = _mediaManager.AnimationDirectoryPRI;

            if (animationDirectorySec != null && animationDirectorySec != animationDirectoryPri)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(animationDirectorySec, resources._animations_Secondary));
            }
            if (animationDirectoryPri != null)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(animationDirectoryPri, resources._animations_Primary));
            }
            var serverDirectoryPri = _mediaManager.MediaDirectoryPRI;
            var serverDirectorySec = _mediaManager.MediaDirectorySEC;

            if (serverDirectorySec != null && serverDirectorySec != serverDirectoryPri)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(serverDirectorySec, resources._secondary));
            }
            if (serverDirectoryPri != null)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(serverDirectoryPri, resources._primary));
            }

            _mediaCategory    = MediaCategories.FirstOrDefault();
            SelectedDirectory = MediaDirectories.FirstOrDefault();
            if (_mediaManager.FileManager != null)
            {
                FileManagerViewmodel = new FileManagerViewmodel(_mediaManager.FileManager);
            }
            RecordersViewmodel = new RecordersViewmodel(Engine, _mediaManager.Recorders);
            RecordersViewmodel.PropertyChanged += _recordersViewmodel_PropertyChanged;
            VideoPreview = UiPluginManager.ComposePart <IVideoPreview>(this);
            VideoPreview?.SetSource(RecordersViewmodel.Channel?.PreviewUrl);

            CommandSearch                 = new UiCommand(_search, _canSearch);
            CommandClearFilters           = new UiCommand(_clearFilters, _canClearFilters);
            CommandDeleteSelected         = new UiCommand(_deleteSelected, o => _isSomethingSelected() && engine.HaveRight(EngineRight.MediaDelete));
            CommandIngestSelectedToServer = new UiCommand(_ingestSelectedToServer, _canIngestSelectedToServer);
            CommandMoveSelectedToArchive  = new UiCommand(_moveSelectedToArchive, o => _selectedDirectory != null && _selectedDirectory.IsServerDirectory && _isSomethingSelected() && engine.HaveRight(EngineRight.MediaArchive) && engine.HaveRight(EngineRight.MediaDelete));
            CommandCopySelectedToArchive  = new UiCommand(_copySelectedToArchive, o => _selectedDirectory != null && _selectedDirectory.IsServerDirectory && _isSomethingSelected() && engine.HaveRight(EngineRight.MediaArchive));
            CommandSweepStaleMedia        = new UiCommand(_sweepStaleMedia, o => CurrentUser.IsAdmin);
            CommandGetLoudness            = new UiCommand(_getLoudness, o => _isSomethingSelected() && engine.HaveRight(EngineRight.MediaEdit));
            CommandExport                 = new UiCommand(_export, _canExport);
            CommandRefresh                = new UiCommand(async ob => await _reloadFiles(), _canRefresh);
            CommandSyncPriToSec           = new UiCommand(_syncSecToPri, o => _selectedDirectory.IsServerDirectory && CurrentUser.IsAdmin);
            CommandCloneAnimation         = new UiCommand(_cloneAnimation, _canCloneAnimation);
            CommandTogglePropertiesPanel  = new UiCommand(o => IsPropertiesPanelVisible = !IsPropertiesPanelVisible);
            CommandVerifyAllMedia         = new UiCommand(_verifyAllMedia, o => _selectedDirectory.IsServerDirectory && CurrentUser.IsAdmin);
        }
        public MediaManagerViewmodel(IMediaManager mediaManager, IPreview preview)
        {
            _mediaManager = mediaManager;
            _preview      = preview;
            if (preview != null)
            {
                PreviewViewmodel = new PreviewViewmodel(preview);
            }

            MediaDirectories = new List <MediaDirectoryViewmodel>();
            MediaDirectories.AddRange(mediaManager.IngestDirectories.Where(d => d.ContainsImport()).Select(d => new MediaDirectoryViewmodel(d, true)));
            IArchiveDirectory archiveDirectory = mediaManager.ArchiveDirectory;

            if (archiveDirectory != null)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(archiveDirectory));
            }

            IAnimationDirectory animationDirectoryPRI = mediaManager.AnimationDirectoryPRI;

            if (animationDirectoryPRI != null)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(animationDirectoryPRI));
            }
            IAnimationDirectory animationDirectorySEC = mediaManager.AnimationDirectorySEC;

            if (animationDirectorySEC != null)
            {
                MediaDirectories.Insert(0, new MediaDirectoryViewmodel(animationDirectorySEC));
            }

            IServerDirectory        serverDirectoryPRI   = mediaManager.MediaDirectoryPRI;
            MediaDirectoryViewmodel serverDirectoryPRIVm = new MediaDirectoryViewmodel(serverDirectoryPRI);

            if (serverDirectoryPRI != null)
            {
                MediaDirectories.Insert(0, serverDirectoryPRIVm);
            }
            IServerDirectory serverDirectorySEC = mediaManager.MediaDirectorySEC;

            if (serverDirectorySEC != null && serverDirectorySEC != serverDirectoryPRI)
            {
                MediaDirectories.Insert(1, new MediaDirectoryViewmodel(serverDirectorySEC));
            }

            _mediaCategory    = MediaCategories.FirstOrDefault();
            SelectedDirectory = serverDirectoryPRIVm;
            if (mediaManager.FileManager != null)
            {
                FileManagerViewmodel = new FileManagerViewmodel(mediaManager.FileManager);
            }
            RecordersViewmodel = new RecordersViewmodel(mediaManager.Recorders);
            RecordersViewmodel.PropertyChanged += _recordersViewmodel_PropertyChanged;
            _previewDisplay = true;
            ComposePlugins();
            VideoPreview?.SetSource(RecordersViewmodel.Channel?.PreviewUrl);

            CommandSearch = new UICommand {
                ExecuteDelegate = _search, CanExecuteDelegate = _canSearch
            };
            CommandClearFilters = new UICommand {
                ExecuteDelegate = _clearFilters, CanExecuteDelegate = _canClearFilters
            };
            CommandDeleteSelected = new UICommand {
                ExecuteDelegate = _deleteSelected, CanExecuteDelegate = _isSomethingSelected
            };
            CommandIngestSelectedToServer = new UICommand {
                ExecuteDelegate = _ingestSelectedToServer, CanExecuteDelegate = _canIngestSelectedToServer
            };
            CommandMoveSelectedToArchive = new UICommand {
                ExecuteDelegate = _moveSelectedToArchive, CanExecuteDelegate = o => _selectedDirectory != null && _selectedDirectory.IsServerDirectory && _isSomethingSelected(o)
            };
            CommandCopySelectedToArchive = new UICommand {
                ExecuteDelegate = _copySelectedToArchive, CanExecuteDelegate = o => _selectedDirectory != null && _selectedDirectory.IsServerDirectory && _isSomethingSelected(o)
            };
            CommandSweepStaleMedia = new UICommand {
                ExecuteDelegate = _sweepStaleMedia
            };
            CommandGetLoudness = new UICommand {
                ExecuteDelegate = _getLoudness, CanExecuteDelegate = _isSomethingSelected
            };
            CommandExport = new UICommand {
                ExecuteDelegate = _export, CanExecuteDelegate = _canExport
            };
            CommandRefresh = new UICommand {
                ExecuteDelegate = ob => _refreshMediaDirectory(_selectedDirectory?.Directory), CanExecuteDelegate = o => _selectedDirectory?.IsIngestDirectory == true
            };
            CommandSyncPriToSec = new UICommand {
                ExecuteDelegate = _syncSecToPri, CanExecuteDelegate = o => _selectedDirectory.IsServerDirectory
            };
            CommandCloneAnimation = new UICommand {
                ExecuteDelegate = _cloneAnimation, CanExecuteDelegate = _canCloneAnimation
            };
        }
示例#20
0
        private static void loadNewMode(OsuMode newMode)
        {
            //Create the actual mode
            GameMode mode = null;

            switch (newMode)
            {
            case OsuMode.MainMenu:
                mode = new MainMenu();
                break;

            case OsuMode.SongSelect:
                mode = new SongSelectMode();
                break;

            case OsuMode.Results:
                mode = new Results();
                break;

#if MONO
            case OsuMode.PlayTest:
                mode = new PlayTest();
                break;
#endif
            case OsuMode.Play:
                if (CurrentOsuMode == OsuMode.VideoPreview)
                {
                    mode = new PreviewPlayer();
                }
                else
                {
                    mode = new Player();
                }
                break;

            case OsuMode.Store:
#if iOS
                mode = new StoreModeIphone();
#else
                mode = new StoreMode();
#endif
                break;

            case OsuMode.Options:
                mode = new Options();
                break;

            case OsuMode.Tutorial:
                mode = new Tutorial();
                break;

            case OsuMode.Credits:
                mode = new Credits();
                break;

            case OsuMode.VideoPreview:
                mode = new VideoPreview();
                break;

            case OsuMode.Empty:
                mode = new Empty();
                break;

#if MONO
            case OsuMode.PositioningTest:
                mode = new PositioningTest();
                break;
#endif
            }

            PendingMode = mode;
        }
示例#21
0
    void OnGUI()
    {
        if (!isTracking)
        {
            if (ImageWidth < ImageHeight)
            {
                trackButton = GUI.Button(new Rect(0, Screen.height - Screen.width / 7, Screen.width / 8, Screen.width / 8), " ", startTrackingStyle);
            }
            else
            {
                trackButton = GUI.Button(new Rect(0, Screen.height - Screen.height / 7, Screen.height / 8, Screen.height / 8), " ", startTrackingStyle);
            }


            if (trackButton)
            {
                isTracking = true;
            }
        }

        if (isTracking)
        {
            if (ImageWidth < ImageHeight)
            {
                stopTrackButton = GUI.Button(new Rect(0, Screen.height - Screen.width / 7, Screen.width / 8, Screen.width / 8), " ", stopTrackingStyle);
            }
            else
            {
                stopTrackButton = GUI.Button(new Rect(0, Screen.height - Screen.height / 7, Screen.height / 8, Screen.height / 8), " ", stopTrackingStyle);
            }


            if (stopTrackButton)
            {
                isTracking    = false;
                TrackerStatus = TrackStatus.Off;
            }
        }



        if (ImageWidth < ImageHeight)
        {
            switchCamButton = GUI.Button(new Rect(Screen.width - Screen.width / 6, Screen.height - Screen.width / 6, Screen.width / 6, Screen.width / 6), " ", switchCamButtonStyle);
        }
        else
        {
            switchCamButton = GUI.Button(new Rect(Screen.width - Screen.height / 6, Screen.height - Screen.height / 6, Screen.height / 6, Screen.height / 6), " ", switchCamButtonStyle);
        }

        if (switchCamButton)
        {
            currentDevice = (currentDevice == 1) ? 0 : 1;
        }


        if (mask)
        {
            if (ImageWidth < ImageHeight)
            {
                normalButton = GUI.Button(new Rect(Screen.width - Screen.width / 30 - Screen.width / 3, Screen.height / 30, Screen.width / 3, Screen.height / 12), "Normal");
            }
            else
            {
                normalButton = GUI.Button(new Rect(Screen.width - Screen.height / 30 - Screen.height / 3, Screen.width / 30, Screen.height / 3, Screen.width / 12), "Normal");
            }
            if (normalButton)
            {
                VideoPreview preview = GameObject.Find("Video Preview").GetComponent <VideoPreview> ();
                preview.DesiredScreenWidth = 0.3f;
                preview.PreviewResults     = true;
                mask = false;
            }
        }
        else
        {
            if (ImageWidth < ImageHeight)
            {
                maskButton = GUI.Button(new Rect(Screen.width - Screen.width / 30 - Screen.width / 3, Screen.height / 30, Screen.width / 3, Screen.height / 12), "Mask");
            }
            else
            {
                maskButton = GUI.Button(new Rect(Screen.width - Screen.height / 30 - Screen.height / 3, Screen.width / 30, Screen.height / 3, Screen.width / 12), "Mask");
            }
            if (maskButton)
            {
                VideoPreview preview = GameObject.Find("Video Preview").GetComponent <VideoPreview> ();
                preview.DesiredScreenWidth = 1f;
                preview.PreviewResults     = false;
                mask = true;
            }
        }
    }