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);
         }
     }
 }
 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);
         }
     }
 }
        private string GetEffectName(string effectFile)
        {
            IGeometryManager geometryManager = ServiceRegistration.Get <IGeometryManager>();
            string           name;

            if (effectFile != null && geometryManager.AvailableEffects.TryGetValue(effectFile, out name))
            {
                return(name);
            }

            return(GetEffectName(geometryManager.StandardEffectFile));
        }
示例#4
0
        public override void Load()
        {
            IGeometryManager geometryManager = ServiceRegistration.Get <IGeometryManager>();

            _geometries = new List <IGeometry>(geometryManager.AvailableGeometries.Values);
            IGeometry current = geometryManager.DefaultVideoGeometry;

            // Fill items
            _items = new List <IResourceString>(_geometries.Count);
            for (int i = 0; i < _geometries.Count; i++)
            {
                IGeometry geometry = _geometries[i];
                _items.Add(LocalizationHelper.CreateResourceString(geometry.Name));
                if (geometry == current)
                {
                    Selected = i;
                }
            }
        }
        private void InitList(ItemsList targetList, string selectedEffect, SimpleStringDelegate command)
        {
            targetList.Clear();
            IGeometryManager geometryManager    = ServiceRegistration.Get <IGeometryManager>();
            string           standardEffectFile = geometryManager.StandardEffectFile;

            foreach (KeyValuePair <string, string> nameToEffect in geometryManager.AvailableEffects)
            {
                string   file       = nameToEffect.Key;
                string   effectFile = selectedEffect ?? standardEffectFile;
                string   effectName = nameToEffect.Value;
                ListItem item       = new ListItem(Consts.KEY_NAME, effectName)
                {
                    Command  = new MethodDelegateCommand(() => command(effectName, file)),
                    Selected = file == effectFile,
                };
                targetList.Add(item);
            }
            targetList.FireChange();
        }
示例#6
0
        void OnGeometryChange(AbstractProperty prop, object oldVal)
        {
            string geometryName = Geometry;

            if (String.IsNullOrEmpty(geometryName))
            {
                _currentGeometry = null;
                return;
            }
            IGeometryManager geometryManager = ServiceRegistration.Get <IGeometryManager>();
            IGeometry        geometry;

            if (geometryManager.AvailableGeometries.TryGetValue(geometryName, out geometry))
            {
                _currentGeometry = geometry;
            }
            else
            {
                ServiceRegistration.Get <ILogger>().Debug("VideoBrush: Geometry '{0}' does not exist", geometryName);
                _currentGeometry = null;
            }
        }
 protected void UpdatePlayerChooseEffectMenu()
 {
     if (_playerChooseEffectMenu.Count == 0)
     {
         IGeometryManager geometryManager    = ServiceRegistration.Get <IGeometryManager>();
         string           standardEffectFile = geometryManager.StandardEffectFile;
         IPlayerContext   pc          = _playerEffectMenuPlayerContext;
         IVideoPlayer     videoPlayer = pc == null ? null : 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);
         }
     }
 }
 protected void UpdatePlayerChooseGeometryMenu()
 {
     if (_playerChooseGeometryMenu.Count == 0)
     {
         IGeometryManager geometryManager = ServiceRegistration.Get <IGeometryManager>();
         IGeometry        defaultGeometry = geometryManager.DefaultVideoGeometry;
         IPlayerContext   pc          = _playerGeometryMenuPlayerContext;
         IVideoPlayer     videoPlayer = pc == null ? null : 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);
         }
     }
 }