Ejemplo n.º 1
0
        public static IVideoPlayer getVideoPlayer(string videoPlayerName, string videoFile, Panel videoOwner, Panel stepsOwner, VideoUserOptions pVideoUserOptions)
        {
            if (videoFile.Contains(".mp3"))
            {
                if (m_Mp3Player == null)
                    m_Mp3Player = new MP3VideoWrapper(videoFile, videoOwner);
                return m_Mp3Player;
            }

            if (videoPlayerName.CompareTo(ProjectConstants.DIRECTX_VIDEO_PLAYER_NAME) == 0)
            {
                if (m_DirectXPlayer == null)
                    m_DirectXPlayer = new DirectXVideoWrapper(videoFile, videoOwner);
                return m_DirectXPlayer;
            }
            else if (videoPlayerName.CompareTo(ProjectConstants.DIRECT_SHOW_VIDEO_PLAYER_NAME) == 0)
            {
                return new DirectShowVideoWrapper(videoFile, videoOwner, stepsOwner, pVideoUserOptions);
            }
            else if (videoPlayerName.CompareTo(ProjectConstants.DUMMY_VIDEO_PLAYER_NAME) == 0)
            {
                return new DummyVideoWrapper();
            }

            throw new VideoPlayerNotFoundException();
        }
Ejemplo n.º 2
0
        public MainReceive(Form1 fork)
        {
            gs = new Class1(); // inainte de MainReceive::_mFactory->Init()



            //gs.GetBase().StateChanged += MainReceive_StateChanged;

            //++si;
            //gs.GetBase().TogglePlay(true, s[si]);

            form = fork;
            //g = form.panel1.CreateGraphics();

            _mFactory = new MediaPlayerFactory(opt,//new string[] { },
                                               @"C:\Program Files (x86)\VideoLAN\VLC", true, new CLogger());

            _mPlayer = _mFactory.CreatePlayer <IVideoPlayer>();
            _mPlayer.WindowHandle = form.panel1.Handle;

            // true: 00, 01
            // false:11, 10
            PlayStart(s[1]);
            //Thread.Sleep(5000);
            PlayStop(); // --> ev # s

            PlayStart(s[1]);


            //_mPlayer.CurrentMedia.Events.StateChanged += Events_StateChanged1;
        }
Ejemplo n.º 3
0
        private static void OnItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            IVideoPlayer value = (IVideoPlayer)e.NewValue;
            PlayerTimelineBarUserControl thisControl = d as PlayerTimelineBarUserControl;

            thisControl.ExternalPlayerBinded();
        }
Ejemplo n.º 4
0
        public EditorLogic(IVideoEditor editor, IVideoPlayer videoPlayer)
        {
            this.editor = editor;
            this.videoPlayer = videoPlayer;
            Proj = new VidkaProj();
            Dimdim = new ProjectDimensions(Proj);
            UiObjects = new VidkaUiStateObjects();
            previewLauncher = new PreviewThreadLauncher(videoPlayer, this);
            ioOps = new VidkaIO();
            Proj_forOriginalPlayback = new VidkaProj();
            IsFileChanged = false;

            EditOpsAll = new EditOperationAbstract[] {
                new EditOperationTrimVideo(this, UiObjects, Dimdim, editor, videoPlayer, TrimDirection.Left, ProjectDimensionsTimelineType.Main),
                new EditOperationTrimVideo(this, UiObjects, Dimdim, editor, videoPlayer, TrimDirection.Right, ProjectDimensionsTimelineType.Main),
                new EditOperationTrimVideo(this, UiObjects, Dimdim, editor, videoPlayer, TrimDirection.Left, ProjectDimensionsTimelineType.Original),
                new EditOperationTrimVideo(this, UiObjects, Dimdim, editor, videoPlayer, TrimDirection.Right, ProjectDimensionsTimelineType.Original),
                new EditOperationMoveVideo(this, UiObjects, Dimdim, editor, videoPlayer),
                new EditOperationSelectOriginalSegment(this, UiObjects, Dimdim, editor, videoPlayer),
            };
            setProjToAllEditOps(Proj);

            FileMapping = Settings.Default.DataNearProject
                ? (VidkaFileMapping)new VidkaFileMapping_proj()
                : (VidkaFileMapping)new VidkaFileMapping_resource();
            dragAndDropMan = new DragAndDropManager(editor, Proj, FileMapping);
            dragAndDropMan.MetaReadyForDraggy += dragAndDropMan_MetaReadyForDraggy;
            dragAndDropMan.MetaReadyForOutstandingVideo += dragAndDropMan_MetaReadyForOutstandingVideo;
            dragAndDropMan.MetaReadyForOutstandingAudio += dragAndDropMan_MetaReadyForOutstandingAudio;
            dragAndDropMan.ThumbOrWaveReady += dragAndDropMan_ThumbOrWaveReady;
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Updates the local state corresponding to the current video player, given in parameter <paramref name="videoPlayer"/>.
        /// This method will check if the given player is suspended (i.e. it is paused). It will also update the thread state so that the system
        /// won't shut down while playing a video.
        /// </summary>
        /// <param name="videoPlayer">Player to check.</param>
        private void UpdateVideoPlayerState(IVideoPlayer videoPlayer)
        {
            IMediaPlaybackControl player = videoPlayer as IMediaPlaybackControl;

            _videoPlayerSuspended = player == null || player.IsPaused;
            PlayerSuspendLevel    = videoPlayer == null ? SuspendLevel.None : SuspendLevel.DisplayRequired;
        }
        public bool SetAudioStream(AudioStreamDescriptor stream)
        {
            IPlayerManager playerManager = ServiceRegistration.Get <IPlayerManager>();
            IPlayerContext playerContext = stream.PlayerContext;

            lock (playerManager.SyncObj)
            {
                if (!playerContext.IsActive)
                {
                    return(false);
                }
                IPlayer player = playerContext.CurrentPlayer;
                if (player == null || player.Name != stream.PlayerName)
                {
                    return(false);
                }
                IVideoPlayer videoPlayer = player as IVideoPlayer;
                if (videoPlayer != null)
                {
                    videoPlayer.SetAudioStream(stream.AudioStreamName);
                }
                playerManager.AudioSlotController = playerContext.PlayerSlotController;
                return(true);
            }
        }
        public MainWindow()
        {
            InitializeComponent();
            this.Topmost = true;

            //MessageBox.Show("1");
            try
            {
                m_factory = new MediaPlayerFactory(true);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }

            m_player = m_factory.CreatePlayer <IVideoPlayer>();
            m_videoImage.Initialize(m_player.CustomRendererEx);

            m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded            += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped         += new EventHandler(Events_PlayerStopped);

            slider2.Value = m_player.Volume;

            DeleteFile.Click    += DeleteFile_Click;
            DeleteAllFile.Click += DeleteAllFile_Click;
            //MyListView.MouseDoubleClick += MyListView_MouseDoubleClick;
            MyListView.PreviewMouseLeftButtonUp += MyListView_PreviewMouseLeftButtonUp;

            UpdateListView();
        }
Ejemplo n.º 8
0
        public void PlayAllUnwatchedEpisodes(int animeSeriesID)
        {
            try
            {
                IVideoPlayer player = ResolvePlayer();
                if (player == null)
                {
                    throw new Exception("Please configure a Video Player");
                }
                List <JMMServerBinary.Contract_AnimeEpisode> rawEps = JMMServerVM.Instance.clientBinaryHTTP.GetAllUnwatchedEpisodes(animeSeriesID,
                                                                                                                                    JMMServerVM.Instance.CurrentUser.JMMUserID.Value);

                List <AnimeEpisodeVM> episodes = new List <AnimeEpisodeVM>();
                foreach (JMMServerBinary.Contract_AnimeEpisode raw in rawEps)
                {
                    episodes.Add(new AnimeEpisodeVM(raw));
                }
                string plsPath = GenerateTemporaryPlayList(episodes);
                if (!string.IsNullOrEmpty(plsPath))
                {
                    player.Play(new VideoInfo {
                        Uri = plsPath, IsPlaylist = true
                    });
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex.Message, ex);
            }
        }
Ejemplo n.º 9
0
        //this is responsible for loading the video.

        //for now, no remote control.
        //if we ever added it, then will be here as well.


        public VideoMainLoaderViewModel(V selectedItem, IVideoPlayer player)
        {
            SelectedItem = selectedItem;
            Player       = player;
            VideoGlobal.CurrentVideoVM = this;
            //well see what else is needed
        }
Ejemplo n.º 10
0
        public TaskController(ILogger logger, IMediaFactory mediaFactory, IVideoPlayer videoPlayer, SpiderFactory spiderFactory, IMetadataController metadataController, IMarqueeRepository marqueeRepository, IMetadataRepository mediaItemRepository)
        {
            if (logger == null)
                throw new ArgumentNullException("logger");
            if (mediaFactory == null)
                throw new ArgumentNullException("mediaFactory");
            if (videoPlayer == null)
                throw new ArgumentNullException("videoPlayer");
            if (spiderFactory == null)
                throw new ArgumentNullException("spiderFactory");
            if (metadataController == null)
                throw new ArgumentNullException("metadataController");
            if (marqueeRepository == null)
                throw new ArgumentNullException("marqueeRepository");
            if (mediaItemRepository == null)
                throw new ArgumentNullException("mediaItemRepository");

            this.logger = logger;
            this.mediaFactory = mediaFactory;
            this.videoPlayer = videoPlayer;
            this.spiderFactory = spiderFactory;
            this.metadataController = metadataController;
            this.marqueeRepository = marqueeRepository;
            this.mediaItemRepository = mediaItemRepository;
            this.audioStreamFactory = new AudioStreamFactory();
        }
Ejemplo n.º 11
0
        private void HandlePlayerChange()
        {
            IVideoPlayer player = GetPlayerToSynchronize();

            FireUpdateVideoPlayerState(player);
            FireSynchronizeToVideoPlayerFramerate(player);
        }
Ejemplo n.º 12
0
 private void SynchronizeToVideoPlayerFramerate(IVideoPlayer videoPlayer)
 {
     lock (_screenManager.SyncObj)
     {
         if (videoPlayer == _synchronizedVideoPlayer)
         {
             return;
         }
         ISharpDXVideoPlayer oldPlayer = _synchronizedVideoPlayer;
         _synchronizedVideoPlayer = null;
         if (oldPlayer != null)
         {
             oldPlayer.SetRenderDelegate(null);
         }
         ISharpDXVideoPlayer newPlayer = videoPlayer as ISharpDXVideoPlayer;
         if (newPlayer == null)
         {
             ServiceRegistration.Get <ILogger>().Info("SkinEngine MainForm: SynchronizeToVideoPlayerFramerate: Restore default rendering, no new Player!");
             return;
         }
         if (newPlayer.SetRenderDelegate(VideoPlayerRender))
         {
             _synchronizedVideoPlayer = newPlayer;
             ServiceRegistration.Get <ILogger>().Info("SkinEngine MainForm: Synchronized render framerate to video player '{0}'", newPlayer);
         }
         else
         {
             ServiceRegistration.Get <ILogger>().Info("SkinEngine MainForm: Video player '{0}' doesn't provide render thread synchronization, using default framerate", newPlayer);
         }
     }
 }
Ejemplo n.º 13
0
        EnumTelevisionHoliday _currentHoliday; //this is important because it may load something else.

        public TelevisionRerunShellViewModel(IVideoPlayer player, ITelevisionShellLogic logic, ITelevisionLoaderLogic loader)
        {
            DisplayName = "Simple Reruns Version 6";
            _player     = player;
            _logic      = logic;
            _loader     = loader;
        }
Ejemplo n.º 14
0
        private void DisposePlayer()
        {
            if (_mFactory == null)
            {
                return;
            }
            try
            {
                _mPlayer.Dispose();
            }
            catch { }
            try
            {
                _mFactory.Dispose();
            }
            catch { }
            try
            {
                _mMedia.Dispose();
            }
            catch { }

            _mPlayer  = null;
            _mFactory = null;
            _mMedia   = null;
        }
Ejemplo n.º 15
0
        public PlayerVlcWpf()
        {
            InitializeComponent();


            timer          = new DispatcherTimer();
            timer.Interval = TimeSpan.FromSeconds(1);
            timer.Tick    += new EventHandler(timer_Tick);

            InitializePropertyValues();


            System.Windows.Forms.Panel p = new System.Windows.Forms.Panel();

            p.BackColor = System.Drawing.Color.Transparent;
            windowsFormsHost1.Opacity = 0.5;
            windowsFormsHost1.Child   = p;



            m_factory = new MediaPlayerFactory(true);
            m_player  = m_factory.CreatePlayer <IVideoPlayer>();
            m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded            += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped         += new EventHandler(Events_PlayerStopped);


            m_player.WindowHandle = p.Handle;
        }
Ejemplo n.º 16
0
        public static IVideoPlayer getVideoPlayer(string videoPlayerName, string videoFile, Panel videoOwner, Panel stepsOwner, VideoUserOptions pVideoUserOptions)
        {
            if (videoFile.Contains(".mp3"))
            {
                if (m_Mp3Player == null)
                {
                    m_Mp3Player = new MP3VideoWrapper(videoFile, videoOwner);
                }
                return(m_Mp3Player);
            }

            if (videoPlayerName.CompareTo(ProjectConstants.DIRECTX_VIDEO_PLAYER_NAME) == 0)
            {
                if (m_DirectXPlayer == null)
                {
                    m_DirectXPlayer = new DirectXVideoWrapper(videoFile, videoOwner);
                }
                return(m_DirectXPlayer);
            }
            else if (videoPlayerName.CompareTo(ProjectConstants.DIRECT_SHOW_VIDEO_PLAYER_NAME) == 0)
            {
                return(new DirectShowVideoWrapper(videoFile, videoOwner, stepsOwner, pVideoUserOptions));
            }
            else if (videoPlayerName.CompareTo(ProjectConstants.DUMMY_VIDEO_PLAYER_NAME) == 0)
            {
                return(new DummyVideoWrapper());
            }

            throw new VideoPlayerNotFoundException();
        }
Ejemplo n.º 17
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            try
            {
                m_factory = new MediaPlayerFactory(true);
                m_sourcePlayer = m_factory.CreatePlayer<IVideoPlayer>();
                m_sourcePlayer.Mute = false;
                m_sourcePlayer.Volume = 100;

                m_renderPlayer = m_factory.CreatePlayer<IVideoPlayer>();
                m_renderPlayer.WindowHandle = panel1.Handle;

                m_inputMedia = m_factory.CreateMedia<ICompositeMemoryInputMedia>(MediaStrings.IMEM);
                SetupVideoSourceOutput(m_sourcePlayer.CustomRendererEx);
                SetupAudioSourceOutput(m_sourcePlayer.CustomAudioRenderer);

                Predicate<LogMessage> filter = p => p.Level == LogLevel.Warning || p.Level == LogLevel.Error;
                m_factory.SubscribeToLogMessages(log => Console.WriteLine(log.Message), filter);

                Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime;
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ejemplo n.º 18
0
        public void PlayAllUnwatchedEpisodes(int animeSeriesID)
        {
            try
            {
                IVideoPlayer player = ResolvePlayer();
                if (player == null)
                {
                    throw new Exception("Please configure a Video Player");
                }
                List <VM_AnimeEpisode_User> episodes = VM_ShokoServer.Instance.ShokoServices.GetAllUnwatchedEpisodes(animeSeriesID,
                                                                                                                     VM_ShokoServer.Instance.CurrentUser.JMMUserID).CastList <VM_AnimeEpisode_User>();

                string plsPath = GenerateTemporaryPlayList(episodes);
                if (!string.IsNullOrEmpty(plsPath))
                {
                    player.Play(new VideoInfo {
                        Uri = plsPath, IsPlaylist = true
                    });
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex.Message, ex);
            }
        }
 protected void UpdatePlayerChooseEffectMenu()
 {
     if (_playerChooseEffectMenu.Count == 0)
     {
         IGeometryManager geometryManager    = ServiceRegistration.Get <IGeometryManager>();
         string           standardEffectFile = geometryManager.StandardEffectFile;
         IPlayerContext   pc = _playerEffectMenuPlayerContext;
         if (pc == null || !pc.IsActive)
         {
             LeaveChooseEffectWorkflow();
             return;
         }
         string effectStr = LocalizationHelper.CreateResourceString(Consts.RES_CHOOSE_PLAYER_EFFECT).Evaluate();
         IList <IPlayerContext> videoPCs = GetVideoPlayerContexts();
         _playerChooseEffectHeader = videoPCs.Count > 1 ?
                                     string.Format("{0} ({1})", effectStr, GetNameForPlayerContext(pc, pc.IsPrimaryPlayerContext ? 0 : 1))
   : effectStr;
         IVideoPlayer videoPlayer = pc.CurrentPlayer as IVideoPlayer;
         foreach (KeyValuePair <string, string> nameToEffect in geometryManager.AvailableEffects)
         {
             string   file         = nameToEffect.Key;
             string   vpEffectFile = videoPlayer == null ? null : videoPlayer.EffectOverride ?? standardEffectFile;
             ListItem item         = new ListItem(Consts.KEY_NAME, nameToEffect.Value)
             {
                 Command  = new MethodDelegateCommand(() => SetEffect(_playerEffectMenuPlayerContext, file)),
                 Selected = file == vpEffectFile,
             };
             item.AdditionalProperties[Consts.KEY_NAVIGATION_MODE] = NavigationMode.ExitPCWorkflow;
             _playerChooseEffectMenu.Add(item);
         }
     }
 }
Ejemplo n.º 20
0
        void PlayPreviewFile(string FileName)
        {
            try
            {
                _player.Stop();
                _player.Dispose();
            }
            catch { }
            try
            {
                _media.Dispose();
            }
            catch { }

            IMediaPlayerFactory factory = new MediaPlayerFactory();

            _media  = factory.CreateMedia <IMediaFromFile>(FileName);
            _player = factory.CreatePlayer <IVideoPlayer>();
            _player.WindowHandle = picturePreview.Handle;
            _player.AspectRatio  = AspectRatioMode.Mode2; // fill?
            _player.Open(_media);
            _player.Events.MediaEnded    += new EventHandler(OnMediaEnded);
            _player.Events.PlayerStopped += new EventHandler(OnPlayerStopped);
            _player.Play();
        }
Ejemplo n.º 21
0
        private void PlaySourceImpl()
        {
            string sourcePath = this.mainViewModel.SourcePath;

            try
            {
                if (FileUtilities.IsDirectory(sourcePath))
                {
                    // Path is a directory
                    IVideoPlayer player = Players.Installed.FirstOrDefault(p => p.Id == Config.PreferredPlayer);
                    if (player == null)
                    {
                        player = Players.Installed[0];
                    }

                    player.PlayTitle(sourcePath, this.mainViewModel.SelectedTitle.Index);
                }
                else
                {
                    // Path is a file
                    FileService.Instance.PlayVideo(sourcePath);
                }
            }
            catch (IOException)
            {
                this.RaisePropertyChanged(nameof(this.PlayAvailable));
            }
        }
Ejemplo n.º 22
0
        public VlcMediaPlayer(IMediaPlayerFactory factory = null, AudioEndpointVolume audioEndpointVolume = null)
        {
            // create the player using the injected factory
            _factory             = factory ?? new MediaPlayerFactory();
            _player              = _factory.CreatePlayer <IVideoPlayer>();
            _audioEndpointVolume = audioEndpointVolume;

            // set default values
            OpenTimeOut    = TimeSpan.FromSeconds(10);
            Async          = true;
            Error          = AudioError.NoError;
            AudioSelection = AudioSelection.Empty;

            // cached event handler to avoid leaks during add and remove
            _durationChanged = (s, e) => OnDurationChanged(e.NewDuration);
            _parsedChanged   = (s, e) => OnParsedChanged();

            // hook events
            _player.Events.MediaChanged           += (s, e) => OnMediaChanged();
            _player.Events.MediaEnded             += (s, e) => OnMediaEnded();
            _player.Events.PlayerEncounteredError += (s, e) => OnEncounteredError();
            _player.Events.PlayerLengthChanged    += (s, e) => OnDurationChanged(e.NewLength);
            _player.Events.PlayerPaused           += (s, e) => OnPaused();
            _player.Events.PlayerPlaying          += (s, e) => OnPlaying();
            _player.Events.PlayerPositionChanged  += (s, e) => OnPositionChanged(e.NewPosition * Duration);
            _player.Events.PlayerPositionChanged  += (s, e) => OnPositionChangedLoop(e.NewPosition);
            _player.Events.PlayerStopped          += (s, e) => OnStopped();
        }
Ejemplo n.º 23
0
        public Window1()
        {
            InitializeComponent();

            this.KeyDown += this.KeyPress;

            System.Windows.Forms.Panel p = new System.Windows.Forms.Panel();
            p.BackColor = System.Drawing.Color.Black;
            windowsFormsHost1.Child = p;

            m_factory = new MediaPlayerFactory(true);
            m_player = m_factory.CreatePlayer<IVideoPlayer>();

            this.DataContext = m_player;

            m_player.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            m_player.WindowHandle = p.Handle;
            slider2.Value = m_player.Volume;

            this.show = "Futurama";
            this.loadManager();
            this.playEpisode();
        }
        public void Initialize(ILogger logger, ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataController mediaItemController, ITaskController taskController, ITagController tagController, IVideoPlayer videoPlayer)
        {
            if (logger == null)
                throw new ArgumentNullException("logger");
            if (securityContext == null)
                throw new ArgumentNullException("securityContext");
            if (mediaFactory == null)
                throw new ArgumentNullException("mediaFactory");
            if (mediaItemController == null)
                throw new ArgumentNullException("mediaItemController");
            if (taskController == null)
                throw new ArgumentNullException("taskController");
            if (tagController == null)
                throw new ArgumentNullException("tagController");
            if (videoPlayer == null)
                throw new ArgumentNullException("videoPlayer");

            this.logger = logger;
            this.securityContext = securityContext;
            this.mediaFactory = mediaFactory;
            this.taskController = taskController;
            this.mediaItemController = mediaItemController;
            this.tagController = tagController;
            this.videoPlayer = videoPlayer;
        }
Ejemplo n.º 25
0
        private void btnPreview_Click(object sender, EventArgs e)
        {
            var selItems = lvVideoFiles.SelectedIndices;

            if (selItems == null)
            {
                return;
            }
            int sel = selItems[0];

            _player.Stop();
            _media.Dispose();

            VideoFileInfo       vfi     = _videoFiles[sel];
            IMediaPlayerFactory factory = new MediaPlayerFactory();

            _media  = factory.CreateMedia <IMediaFromFile>(vfi.FileFullName);
            _player = factory.CreatePlayer <IVideoPlayer>();
            _player.WindowHandle = picturePreview.Handle;
            _player.AspectRatio  = AspectRatioMode.Mode2;
            _player.Open(_media);
            _player.Events.MediaEnded    += new EventHandler(OnMediaEnded);
            _player.Events.PlayerStopped += new EventHandler(OnPlayerStopped);
            _player.Play();
        }
 protected void UpdatePlayerChooseGeometryMenu()
 {
     if (_playerChooseGeometryMenu.Count == 0)
     {
         IGeometryManager geometryManager = ServiceRegistration.Get <IGeometryManager>();
         IGeometry        defaultGeometry = geometryManager.DefaultVideoGeometry;
         IPlayerContext   pc = _playerGeometryMenuPlayerContext;
         if (pc == null || !pc.IsActive)
         {
             LeaveChooseGeometryWorkflow();
             return;
         }
         string geometryStr = LocalizationHelper.CreateResourceString(Consts.RES_CHOOSE_PLAYER_GEOMETRY).Evaluate();
         IList <IPlayerContext> videoPCs = GetVideoPlayerContexts();
         _playerChooseGeometryHeader = videoPCs.Count > 1 ?
                                       string.Format("{0} ({1})", geometryStr, GetNameForPlayerContext(pc, pc.IsPrimaryPlayerContext ? 0 : 1))
   : geometryStr;
         IVideoPlayer videoPlayer = pc.CurrentPlayer as IVideoPlayer;
         foreach (KeyValuePair <string, IGeometry> nameToGeometry in geometryManager.AvailableGeometries)
         {
             IGeometry geometry   = nameToGeometry.Value;
             IGeometry vpGeometry = videoPlayer == null ? null : videoPlayer.GeometryOverride ?? defaultGeometry;
             ListItem  item       = new ListItem(Consts.KEY_NAME, nameToGeometry.Key)
             {
                 Command  = new MethodDelegateCommand(() => SetGeometry(_playerGeometryMenuPlayerContext, geometry)),
                 Selected = vpGeometry == geometry,
             };
             item.AdditionalProperties[Consts.KEY_NAVIGATION_MODE] = NavigationMode.ExitPCWorkflow;
             _playerChooseGeometryMenu.Add(item);
         }
     }
 }
        protected void Update()
        {
            IPlayerContextManager playerContextManager = ServiceRegistration.Get <IPlayerContextManager>();
            IWorkflowManager      workflowManager      = ServiceRegistration.Get <IWorkflowManager>();
            IPlayerContext        pcPrimary            = playerContextManager.PrimaryPlayerContext;
            IPlayer      primaryPlayer = pcPrimary == null ? null : pcPrimary.CurrentPlayer;
            IImagePlayer pp            = primaryPlayer as IImagePlayer;
            IVideoPlayer vp            = primaryPlayer as IVideoPlayer;
            IAudioPlayer ap            = primaryPlayer as IAudioPlayer;
            bool         visible       = (pp != null || vp != null || ap != null) &&
                                         !workflowManager.IsStateContainedInNavigationStack(pcPrimary.FullscreenContentWorkflowStateId);
            IResourceString displayTitleRes;

            if (ap != null)
            {
                displayTitleRes = LocalizationHelper.CreateResourceString(Consts.RES_AUDIO_VISUALIZATION);
            }
            else if (vp != null)
            {
                displayTitleRes = LocalizationHelper.CreateStaticString(
                    LocalizationHelper.CreateResourceString(Consts.RES_FULLSCREEN_VIDEO).Evaluate(vp.Name));
            }
            else
            {
                displayTitleRes = LocalizationHelper.CreateResourceString(Consts.RES_FULLSCREEN_IMAGE);
            }
            lock (_syncObj)
            {
                _isVisible            = visible;
                _displayTitleResource = displayTitleRes;
            }
            FireStateChanged();
        }
Ejemplo n.º 28
0
 //current state
 public PreviewThreadLauncher(IVideoPlayer player, ISomeCommonEditorOperations editor)
 {
     this.player = player;
     this.editor = editor;
     mutex = new PreviewThreadMutex();
     ticker = new Timer();
     ticker.Tick += PlaybackTickerFunc;
 }
Ejemplo n.º 29
0
        //current state


        public PreviewThreadLauncher(IVideoPlayer player, ISomeCommonEditorOperations editor)
        {
            this.player  = player;
            this.editor  = editor;
            mutex        = new PreviewThreadMutex();
            ticker       = new Timer();
            ticker.Tick += PlaybackTickerFunc;
        }
        public VLCVideoPlayer()
        {
            InitializeComponent();

            m_factory = new MediaPlayerFactory(true);
            m_player  = m_factory.CreatePlayer <IVideoPlayer>();
            Initialize(m_player.CustomRendererEx);
        }
        protected override IVideoPlayer GetPlayerToSynchronize()
        {
            IPlayerContextManager playerContextManager = ServiceRegistration.Get <IPlayerContextManager>();
            IPlayerSlotController backgroundPsc        = VideoBackgroundModel.GetCurrentInstance().PlayerSlotController;
            IVideoPlayer          player = backgroundPsc != null ? backgroundPsc.CurrentPlayer as IVideoPlayer : null;

            return(playerContextManager[PlayerContextIndex.PRIMARY] as IVideoPlayer ?? player);
        }
Ejemplo n.º 32
0
 public void SetVideoPlayer(IVideoPlayer videoPlayer)
 {
     _videoPlayer         = videoPlayer;
     _videoPlayer.Opened += (s, args) =>
     {
         UpdateFromModel(_videoPlayer.Content);
     };
 }
Ejemplo n.º 33
0
 private void SwitchVideoPlayback(PlaybackStateEventArgs eventArgs, IVideoPlayer videoPlayer)
 {
     EventAggregator.Publish(new StopMessage());
     PlayerManagementService.DefaultVideoPlayer = videoPlayer;
     EventAggregator.Publish(new PlayMessage {
         Options = eventArgs
     });
 }
Ejemplo n.º 34
0
 public MouseOpLinkVideoAudio(IVidkaOpContext iEditor,
                              VidkaUiStateObjects uiObjects,
                              ProjectDimensions dimdim,
                              IVideoShitbox editor,
                              IVideoPlayer videoPlayer)
     : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
 {
 }
Ejemplo n.º 35
0
        //VideoDetectForm videoDetectform = new VideoDetectForm();

        public VideoPlayer()
        {
            InitializeComponent();

            m_factory             = new MediaPlayerFactory();
            m_player              = m_factory.CreatePlayer <IVideoPlayer>();
            m_player.WindowHandle = panel1.Handle;
        }
Ejemplo n.º 36
0
        public MouseOpLinkVideoAudio(IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
        }
Ejemplo n.º 37
0
        protected void FireUpdateVideoPlayerState(IVideoPlayer player)
        {
            UpdateVideoPlayerStateDlgt dlgt = UpdateVideoPlayerState;

            if (dlgt != null)
            {
                dlgt(player);
            }
        }
Ejemplo n.º 38
0
 //current state
 public PreviewThreadLauncher(IVideoPlayer player, IAudioPlayer playerAudio, IVidkaOpContext editor)
 {
     this.player = player;
     this.playerAudio = playerAudio;
     this.editor = editor;
     mutex = new PreviewThreadMutex();
     ticker = new Timer();
     ticker.Tick += PlaybackTickerFunc;
 }
        public VidkaFastPreviewPlayerWrapper(
			VidkaFastPreviewPlayer playerFast,
			IVideoPlayer playerWmp,
			IVidkaMainForm form)
        {
            this.playerFast = playerFast;
            this.playerWmp = playerWmp;
            this.form = form;
        }
        public EditOperationSelectOriginalSegment(ISomeCommonEditorOperations iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoEditor editor,
			IVideoPlayer videoPlayer)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            keyboardMode = false;
            isStarted = false;
        }
Ejemplo n.º 41
0
        public EditOperationMoveVideo(ISomeCommonEditorOperations iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoEditor editor,
			IVideoPlayer videoPlayer)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            copyMode = false;
            keyboardMode = false;
        }
        public MouseOpSelectOriginalSegment(IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            keyboardMode = false;
            isStarted = false;
        }
Ejemplo n.º 43
0
        public MouseOpVideoEasings(IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer,
            TrimDirection side)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            this.side = side;
            keyboardMode = false;
        }
Ejemplo n.º 44
0
        public MediaListPlayer(IntPtr hMediaLib, IMediaList mediaList)
        {
            m_mediaList = mediaList;
             m_hMediaListPlayer = LibVlcMethods.libvlc_media_list_player_new(hMediaLib);
             LibVlcMethods.libvlc_media_list_player_set_media_list(m_hMediaListPlayer, ((INativePointer)m_mediaList).Pointer);
             m_mediaList.Dispose();

             m_videoPlayer = new VideoPlayer(hMediaLib);
             LibVlcMethods.libvlc_media_list_player_set_media_player(m_hMediaListPlayer, ((INativePointer)m_videoPlayer).Pointer);
             m_videoPlayer.Dispose();
        }
Ejemplo n.º 45
0
        public MouseOpMoveVideo(IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer,
			MetaGeneratorInOtherThread metaGenerator)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            this.metaGenerator = metaGenerator;
            copyMode = false;
            keyboardMode = false;
        }
        public void Open(IVideoPlayer videoPlayer)
        {
            if (videoPlayer == null)
                throw new ArgumentNullException("videoPlayer");

            this.videoPlayer = videoPlayer;

            videoHost.Child = videoPlayer as UIElement;

            IsOpen = true;

            Show();
        }
Ejemplo n.º 47
0
        public EditOperationTrimVideo(ISomeCommonEditorOperations iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoEditor editor,
			IVideoPlayer videoPlayer,
			TrimDirection side,
			ProjectDimensionsTimelineType timeline)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            this.side = side;
            this.timeline = timeline;
            keyboardMode = false;
        }
Ejemplo n.º 48
0
        public MouseOpAbstract(
            IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer)
        {
            this.iEditor = iEditor;
            this.uiObjects = uiObjects;
            this.dimdim = dimdim;
            this.editor = editor;
            this.videoPlayer = videoPlayer;
        }
Ejemplo n.º 49
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            _mFactory = new MediaPlayerFactory(true);
            _mSourcePlayer = _mFactory.CreatePlayer<IVideoPlayer>();
            _mSourcePlayer.Events.PlayerPlaying += new EventHandler(Events_PlayerPlaying);
            _mSourcePlayer.Mute = true;
            _mRenderPlayer = _mFactory.CreatePlayer<IVideoPlayer>();
            _mRenderPlayer.WindowHandle = panel1.Handle;
            _mInputMedia = _mFactory.CreateMedia<IMemoryInputMedia>(MediaStrings.Imem);
            SetupOutput(_mSourcePlayer.CustomRendererEx);
        }
Ejemplo n.º 50
0
        public MouseOpTrimVideo(IVidkaOpContext iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoShitbox editor,
			IVideoPlayer videoPlayer,
			TrimDirection side,
			ProjectDimensionsTimelineType timeline)
            : base(iEditor, uiObjects, dimdim, editor, videoPlayer)
        {
            this.side = side;
            this.timeline = timeline;
            keyboardMode = false;
        }
Ejemplo n.º 51
0
        public EditOperationAbstract(
			ISomeCommonEditorOperations iEditor,
			VidkaUiStateObjects uiObjects,
			ProjectDimensions dimdim,
			IVideoEditor editor,
			IVideoPlayer videoPlayer)
        {
            this.iEditor = iEditor;
            this.uiObjects = uiObjects;
            this.dimdim = dimdim;
            this.editor = editor;
            this.videoPlayer = videoPlayer;
        }
Ejemplo n.º 52
0
        public MainWindow()
        {
            InitializeComponent();

            m_factory = new MediaPlayerFactory();
            m_player = m_factory.CreatePlayer<IVideoPlayer>();
            m_videoImage.Initialize(m_player.CustomRendererEx);

            m_player.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            slider2.Value = m_player.Volume;
        }
Ejemplo n.º 53
0
        public PlaylistController(ILogger logger, IPlaylistViewModel playlist, PlaylistTaskViewModel task, IVideoPlayer videoPlayer)
        {
            if (logger == null)
                throw new ArgumentNullException("logger");
            if (playlist == null)
                throw new ArgumentNullException("playlist");
            if (task == null)
                throw new ArgumentNullException("task");
            if (videoPlayer == null)
                throw new ArgumentNullException("videoPlayer");

            this.logger = logger;
            this.playlist = playlist;
            this.task = task;
            this.videoPlayer = videoPlayer;
        }
Ejemplo n.º 54
0
    private void SyncToPlayer(IVideoPlayer player)
    {
      if (_refreshRateChanger != null)
      {
        _refreshRateChanger.Dispose();
        _refreshRateChanger = null;
      }
      MediaItem mediaItem = GetCurrentMediaItem(player);
      if (mediaItem == null)
        return;

      int intFps;
      if (MediaItemAspect.TryGetAttribute(mediaItem.Aspects, VideoAspect.ATTR_FPS, out intFps))
      {
        ICollection<int> excludeRates = TryParseIntList(_settings.Settings.NoChangeForRate);
        if (excludeRates.Contains(intFps))
        {
          ServiceRegistration.Get<ILogger>().Debug("RefreshRateChanger: Video fps: {0}; No change due to settings.", intFps);
          return;
        }
        _refreshRateChanger = new TemporaryRefreshRateChanger(GetScreenNum());
        double fps = intFps;
        if (intFps == 23)
          fps = 23.976;
        if (intFps == 29)
          fps = 29.970;
        if (intFps == 59)
          fps = 59.940;

        var currentRefreshRate = _refreshRateChanger.GetRefreshRate();
        if (!IsMultipleOf(currentRefreshRate, fps))
        {
          ServiceRegistration.Get<ILogger>().Debug("RefreshRateChanger: Video fps: {0}; Screen refresh rate {1}, trying to change it.", fps, currentRefreshRate);
          _refreshRateChanger.SetRefreshRate(fps);
        }
        else
        {
          ServiceRegistration.Get<ILogger>().Debug("RefreshRateChanger: Video fps: {0}; Screen refresh rate {1}, no change required.", fps, currentRefreshRate);
        }
      }
    }
Ejemplo n.º 55
0
        public MainWindow()
        {
            InitializeComponent();

            System.Windows.Forms.Panel p = new System.Windows.Forms.Panel();
            p.BackColor = System.Drawing.Color.Black;
            windowsFormsHost1.Child = p;

            m_factory = new MediaPlayerFactory(true);
            m_player = m_factory.CreatePlayer<IVideoPlayer>();

            this.DataContext = m_player;

            m_player.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            m_player.WindowHandle = p.Handle;
            slider2.Value = m_player.Volume;
        }
Ejemplo n.º 56
0
        public VideoPlayerViewModel(IVideoPlayer videoPlayer, IEventAggregator eventAggregator,
            ILibraryService libraryService) : base(videoPlayer)
        {
            this.IsLoading = Visibility.Hidden;
            this.IsExitMenuVisible = Visibility.Hidden;

            this._eventAggregator = eventAggregator;
            this._libraryService = libraryService;
            this.GoToHomePageCommand = new DelegateCommand(this.SetHomePage);
            this.ToggleStyleCommand = new DelegateCommand(this.ToggleWindowStyle);
            this.CloseCommand = new DelegateCommand(this.CloseAsync, () =>this.SelectedTab != 3);

            this._eventAggregator.GetEvent<GoToPage>().Subscribe(this.SetSelectedTab);
            this._eventAggregator.GetEvent<LibraryUpdating>()
                .Subscribe(message =>
                {
                    this.LoadingMessage = message;
                    this.IsLoading = Visibility.Visible;
                });
            this._eventAggregator.GetEvent<LibraryUpdated>()
                .Subscribe(payload => { this.IsLoading = Visibility.Hidden; });
        }
Ejemplo n.º 57
0
    private void SyncToPlayer(IVideoPlayer player)
    {
      if (_refreshRateChanger != null)
      {
        _refreshRateChanger.Dispose();
        _refreshRateChanger = null;
      }
      MediaItem mediaItem = GetCurrentMediaItem(player);
      if (mediaItem == null)
        return;

      int intFps;
      if (MediaItemAspect.TryGetAttribute(mediaItem.Aspects, VideoAspect.ATTR_FPS, out intFps))
      {
        int mappedIntFps;
        if (!_settings.Settings.RateMappings.TryGetValue(intFps, out mappedIntFps) || mappedIntFps <= 0)
        {
          ServiceRegistration.Get<ILogger>().Debug("RefreshRateChanger: Video fps: {0}; No mapping for this rate found.", intFps);
          return;
        }

        _refreshRateChanger = new TemporaryRefreshRateChanger(GetScreenNum(), true);
        var fps = TranslateFps(mappedIntFps);

        var currentRefreshRate = _refreshRateChanger.GetRefreshRate();
        if (currentRefreshRate != fps)
        {
          ServiceRegistration.Get<ILogger>().Info("RefreshRateChanger: Video fps: {0}; Screen refresh rate {1}, trying to change it.", fps, currentRefreshRate);
          _refreshRateChanger.SetRefreshRate(fps);
        }
        else
        {
          ServiceRegistration.Get<ILogger>().Debug("RefreshRateChanger: Video fps: {0}; Screen refresh rate {1}, no change required.", fps, currentRefreshRate);
        }
      }
    }
Ejemplo n.º 58
0
 private void SynchronizeToVideoPlayerFramerate(IVideoPlayer videoPlayer)
 {
   lock (_screenManager.SyncObj)
   {
     if (videoPlayer == _synchronizedVideoPlayer)
       return;
     ISharpDXVideoPlayer oldPlayer = _synchronizedVideoPlayer;
     _synchronizedVideoPlayer = null;
     if (oldPlayer != null)
       oldPlayer.SetRenderDelegate(null);
     ISharpDXVideoPlayer SharpDXVideoPlayer = videoPlayer as ISharpDXVideoPlayer;
     if (SharpDXVideoPlayer != null)
       if (SharpDXVideoPlayer.SetRenderDelegate(VideoPlayerRender))
       {
         _synchronizedVideoPlayer = SharpDXVideoPlayer;
         ServiceRegistration.Get<ILogger>().Info("SkinEngine MainForm: Synchronized render framerate to video player '{0}'", SharpDXVideoPlayer);
       }
       else
         ServiceRegistration.Get<ILogger>().Info(
             "SkinEngine MainForm: Video player '{0}' doesn't provide render thread synchronization, using default framerate", SharpDXVideoPlayer);
   }
 }
Ejemplo n.º 59
0
 /// <summary>
 /// Updates the local state corresponding to the current video player, given in parameter <paramref name="videoPlayer"/>.
 /// This method will check if the given player is suspended (i.e. it is paused). It will also update the thread state so that the system
 /// won't shut down while playing a video.
 /// </summary>
 /// <param name="videoPlayer">Player to check.</param>
 private void UpdateVideoPlayerState(IVideoPlayer videoPlayer)
 {
   IMediaPlaybackControl player = videoPlayer as IMediaPlaybackControl;
   _videoPlayerSuspended = player == null || player.IsPaused;
   PlayerSuspendLevel = videoPlayer == null ? SuspendLevel.None : SuspendLevel.DisplayRequired;
 }
Ejemplo n.º 60
0
        private void DisposePlayer()
        {
            if (_mFactory == null)
                return;
            try
            {
                _mPlayer.Dispose();
            }
            catch { }
            try
            {
                _mFactory.Dispose();
            }
            catch { }
            try
            {
                _mMedia.Dispose();
            }
            catch { }

            _mPlayer = null;
            _mFactory = null;
            _mMedia = null;
        }