Пример #1
0
        internal async Task <bool> RunInternal(Dictionary <Type, object> viewModelsMapping, IPreviewer previewer)
        {
            if (isRunning)
            {
                return(true);
            }
            mainScheduler = TaskScheduler.FromCurrentSynchronizationContext();
            host          = await HttpHost.StartServer(this, Constants.DEFAULT_PORT, PORTS_RANGE);

            if (host == null)
            {
                Log.Error("Couldn't start server");
                return(false);
            }
            broadcaster = new DiscoveryBroadcaster(port, true);
            await broadcaster.Start();

            if (viewModelsMapping == null)
            {
                viewModelsMapping = new Dictionary <Type, object>();
            }
            if (previewer == null)
            {
                previewer = new Previewer(viewModelsMapping);
            }
            this.previewer = previewer;
            vm             = new VM();
            isRunning      = true;
            return(true);
        }
Пример #2
0
        internal async Task <bool> RunInternal(Dictionary <Type, object> viewModelsMapping,
                                               IPreviewer previewer, string ideIP, int idePort, IUIToolkit uiToolkit, ITcpCommunicatorClient client)
        {
            if (isRunning)
            {
                return(true);
            }

            this.uiToolkit = uiToolkit;

            if (client == null)
            {
                client = new TcpCommunicatorClient();
            }
            this.client          = client;
            client.DataReceived += HandleDataReceived;

            mainScheduler = TaskScheduler.FromCurrentSynchronizationContext();
            await RegisterDevice(ideIP, idePort);

            if (viewModelsMapping == null)
            {
                viewModelsMapping = new Dictionary <Type, object>();
            }
            if (previewer == null)
            {
                previewer = new Previewer(viewModelsMapping);
            }
            this.previewer = previewer;
            vm             = new VM();
            isRunning      = true;
            return(true);
        }
Пример #3
0
        public IPreviewer CreatePreviewer(string fileName, string originName)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                return(null);
            }

            if (!(File.Exists(fileName)))
            {
                return(null);
            }

            IPreviewer previewer = null;
            //转化为大写,避免出现后缀大小写不一致的问题;
            var uperFileName = originName.ToUpper();

            if (SqliteExtensionNames.FirstOrDefault(p => uperFileName.EndsWith(p)) != null)
            {
                previewer = new SqlitePreviewer(fileName);
            }
            else if (VlcExtensionNames.FirstOrDefault(p => uperFileName.EndsWith(p)) != null)
            {
                previewer = new VlcVideoPreviewer(fileName);
            }
            else
            {
                previewer = new OutsideInPreviewer(fileName);
            }
            return(previewer);
        }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            bd.Child = null;
            _previewer?.Dispose();
            _previewer = null;
#if DEBUG
            for (int i = 0; i < 2; i++)
            {
                System.GC.Collect();
                System.GC.WaitForPendingFinalizers();
            }
#endif
        }
Пример #5
0
        public TestVideoPreviewer()
        {
            InitializeComponent();
            var        providers = ServiceProvider.GetAllInstances <IPreviewProvider>();
            IPreviewer previewer = null;

            foreach (var pro in providers)
            {
                previewer = pro.CreatePreviewer("D:\\C# Console\\ConsoleApp1\\ITunes\\1.mp4", "1.mp4");
                if (previewer != null)
                {
                    break;
                }
            }

            mainContent.Content = previewer.UIObject;
        }
Пример #6
0
        internal async Task <bool> RunInternal(Dictionary <Type, object> viewModelsMapping, IPreviewer previewer)
        {
            if (isRunning)
            {
                return(true);
            }

            mainScheduler = TaskScheduler.FromCurrentSynchronizationContext();
            await RegisterDevice();

            if (viewModelsMapping == null)
            {
                viewModelsMapping = new Dictionary <Type, object>();
            }
            if (previewer == null)
            {
                previewer = new Previewer(viewModelsMapping);
            }
            this.previewer = previewer;
            vm             = new VM();
            isRunning      = true;
            return(true);
        }
Пример #7
0
 public static Task <bool> Run(Dictionary <Type, object> viewModelsMapping = null, IPreviewer previewer = null)
 {
     return(Instance.RunInternal(viewModelsMapping, previewer));
 }
Пример #8
0
 public static Task <bool> Run(Dictionary <Type, object> viewModelsMapping = null,
                               IPreviewer previewer = null, string ideIP = null, int idePort = Constants.DEFAULT_PORT)
 {
     return(Instance.RunInternal(viewModelsMapping, previewer, ideIP, idePort,
                                 new UIToolkit(), new TcpCommunicatorClient()));
 }
Пример #9
0
        private void ShowPreviewContent()
        {
            if (!ShowPreview)
            {
                return;
            }
            if (SelectedControl == null)
            {
                return;
            }

            if (SelectedControl.IsDir)
            {
                return;
            }

            try
            {
                IPreviewer view = null;
                var        ext  = Path.GetExtension(SelectedControl.DisplayName);

                foreach (var item in Previewer)
                {
                    foreach (var type in item.SupportExtensions)
                    {
                        if (type == ext)
                        {
                            view = item;
                            break;
                        }
                    }
                }

                if (view == null)
                {
                    sideTh.Visibility = Visibility.Collapsed;
                }
                else
                {
                    var realpath    = Path.Combine(CurrentPath, SelectedControl.ItemName);
                    var displaypath = Path.Combine(CurrentPath, SelectedControl.DisplayName);
                    var preview     = view.GetPreview(realpath, displaypath);

                    if (preview == null)
                    {
                        sideTh.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        sideTh.Visibility = Visibility.Visible;
                        sideName.Content  = preview.Name;
                        sideThumb.Source  = preview.PreviewImage;
                        sidePath.Content  = SelectedControl.DisplayName;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Пример #10
0
 public static Task <bool> Run(Dictionary <Type, object> viewModelsMapping = null,
                               IPreviewer previewer = null, string ideIP = null, int idePort = Constants.DEFAULT_PORT)
 {
     return(Instance.RunInternal(viewModelsMapping, previewer, ideIP, idePort));
 }