コード例 #1
0
        public FavoritesViewModel(IPresentationManager presentation, IImageManager imageManager, IApiClient apiClient, ISessionManager session, INavigationService nav, IPlaybackManager playback, ILogger logger, double tileWidth, double tileHeight, IServerEvents serverEvents)
            : base(presentation, apiClient)
        {
            _sessionManager = session;
            _playbackManager = playback;
            _imageManager = imageManager;
            _navService = nav;
            _logger = logger;
            _serverEvents = serverEvents;

            TileWidth = tileWidth;
            TileHeight = tileHeight;

            var spotlightTileWidth = TileWidth * 2 + TilePadding;
            var spotlightTileHeight = spotlightTileWidth * 9 / 16;

            SpotlightViewModel = new ImageViewerViewModel(_imageManager, new List<ImageViewerImage>())
            {
                Height = spotlightTileHeight,
                Width = spotlightTileWidth,
                CustomCommandAction = i => _navService.NavigateToItem(i.Item, ViewType.Tv)
            };

            LoadViewModels();

            NavigateToFavoriteMoviesCommand = new RelayCommand(o => NavigateToFavorites("Movie"));
        }
コード例 #2
0
        public InternalDirectShowPlayer(ILogManager logManager, IHiddenWindow hiddenWindow, IPresentationManager presentation, ISessionManager sessionManager, IPlaybackManager playbackManager, ITheaterConfigurationManager config, IIsoManager isoManager, IUserInputManager inputManager, IZipClient zipClient, IHttpClient httpClient, IConnectionManager connectionManager)
        {
            _logger = logManager.GetLogger("InternalDirectShowPlayer");
            _hiddenWindow = hiddenWindow;
            _presentation = presentation;
            _sessionManager = sessionManager;
            _httpClient = httpClient;
            _connectionManager = connectionManager;
            _playbackManager = playbackManager;
            _config = config;
            _isoManager = isoManager;
            _inputManager = inputManager;
            _zipClient = zipClient;

            _config.Configuration.InternalPlayerConfiguration.VideoConfig.SetDefaults();
            _config.Configuration.InternalPlayerConfiguration.AudioConfig.SetDefaults();
            _config.Configuration.InternalPlayerConfiguration.SubtitleConfig.SetDefaults();
            _config.Configuration.InternalPlayerConfiguration.COMConfig.SetDefaults();

            //use a static object so we keep the libraries in the same place. Doesn't usually matter, but the EVR Presenter does some COM hooking that has problems if we change the lib address.
            //if (_privateCom == null)
            //    _privateCom = new URCOMLoader(_config, _zipClient);
            URCOMLoader.Instance.Initialize(_config, _zipClient, logManager);

            EnsureMediaFilters();
        }
コード例 #3
0
 public CriticReviewListViewModel(IPresentationManager presentationManager, IApiClient apiClient, IImageManager imageManager, string itemId)
 {
     ImageManager = imageManager;
     _itemId = itemId;
     ApiClient = apiClient;
     PresentationManager = presentationManager;
 }
コード例 #4
0
 public PluginsPageViewModel(IApplicationHost appHost, INavigationService nav, IInstallationManager installationManager, IPresentationManager presentationManager)
 {
     _appHost = appHost;
     _nav = nav;
     _installationManager = installationManager;
     _presentationManager = presentationManager;
 }
コード例 #5
0
        public ScreensaverManager(IUserInputManager userInput, IPresentationManager presentationManager, IPlaybackManager playback, ISessionManager session, IApiClient apiClient, ITheaterConfigurationManager theaterConfigurationManager, ILogManager logManager, IServerEvents serverEvents)
        {
            _userInput = userInput;
            _presentationManager = presentationManager;
            _playback = playback;
            _session = session;
            _apiClient = apiClient;
            _theaterConfigurationManager = theaterConfigurationManager;
            _logger = logManager.GetLogger(GetType().Name);
            _serverEvents = serverEvents;

            _session.UserLoggedIn += session_UserChanged;
            _session.UserLoggedOut += session_UserChanged;

            _playback.PlaybackCompleted += _playback_PlaybackCompleted;
            _playback.PlaybackStarted += _playback_PlaybackStarted;

            _serverEvents.BrowseCommand += _serverEvents_BrowseCommand;
            _serverEvents.MessageCommand += _serverEvents_MessageCommand;
            _serverEvents.PlayCommand += _serverEvents_PlayCommand;
            _serverEvents.PlaystateCommand += _serverEvents_PlaystateCommand;
            _serverEvents.GeneralCommand += _serverEvents_GeneralCommand; 

            SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;

            StartTimer();
        }
コード例 #6
0
 public StartupWizardXyVsFilter(INavigationService nav, IPresentationManager presentation, IMediaFilters mediaFilters)
 {
     _nav = nav;
     _presentation = presentation;
     _mediaFilters = mediaFilters;
     InitializeComponent();
 }
コード例 #7
0
 public PluginCategoryListViewModel(IPresentationManager presentationManager, IInstallationManager installationManager, INavigationService nav, IApplicationHost appHost)
 {
     _presentationManager = presentationManager;
     _installationManager = installationManager;
     _nav = nav;
     _appHost = appHost;
 }
コード例 #8
0
 public LogoScreensaverWindow(IPresentationManager presentationManager, IScreensaverManager screensaverManager, ILogger logger) : base(presentationManager, screensaverManager, logger)
 {
     InitializeComponent();
     
     DataContext = this;
     Loaded += LogoScreensaver_Loaded;
 }
コード例 #9
0
 public UserListViewModel(IPresentationManager presentationManager, IImageManager imageManager, ISessionManager sessionManager, IApiClient apiClient)
 {
     ApiClient = apiClient;
     SessionManager = sessionManager;
     ImageManager = imageManager;
     PresentationManager = presentationManager;
 }
コード例 #10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MainWindow" /> class.
        /// </summary>
        public MainWindow(ILogger logger, IPlaybackManager playbackManager, IApiClient apiClient, IImageManager imageManager, IApplicationHost appHost, IPresentationManager appWindow, IUserInputManager userInput, ITheaterConfigurationManager config, INavigationService nav, IScreensaverManager screensaverManager)
            : base()
        {
            _logger = logger;
            _appHost = appHost;
            _appWindow = appWindow;
            _config = config;
            _playbackManager = playbackManager;
            UserInputManager = userInput;
            NavigationManager = nav;

            Loaded += MainWindow_Loaded;

            InitializeComponent();

            RotatingBackdrops = new RotatingBackdropsViewModel(apiClient, _config, imageManager, playbackManager, logger, screensaverManager);

            _config.ConfigurationUpdated += _config_ConfigurationUpdated;
            _playbackManager.PlaybackStarted += _playbackManager_PlaybackStarted;
            _playbackManager.PlaybackCompleted += _playbackManager_PlaybackCompleted;

            //Timeline.DesiredFrameRateProperty.OverrideMetadata(
            //    typeof(Timeline),
            //    new FrameworkPropertyMetadata { DefaultValue = 30 }
            //);
        }
コード例 #11
0
        public UserProfileWindow(DefaultThemePageMasterCommandsViewModel masterCommands, ISessionManager session, IPresentationManager presentationManager, IImageManager imageManager, IApiClient apiClient, DisplayPreferences displayPreferences, ListPageConfig options)
        {
            _session = session;
            _options = options;
            _displayPreferencesViewModel = new DisplayPreferencesViewModel(displayPreferences, presentationManager);
            _previousFocus = "";

            InitializeComponent();

            Loaded += UserProfileWindow_Loaded;
            Unloaded += UserProfileWindow_Unloaded;
            masterCommands.PageNavigated += masterCommands_PageNavigated;
            BtnClose.Click += BtnClose_Click;

            //Display preferences
            RadioList.Click += radioList_Click;
            RadioPoster.Click += radioPoster_Click;
            RadioThumbstrip.Click += radioThumbstrip_Click;
            RadioPosterStrip.Click += radioPosterStrip_Click;

            //Sort preferences
            RadioSortAscending.Click += RadioSortAscending_Click;
            RadioSortDescending.Click += RadioSortDescending_Click;

            //Focus tracking
            BtnClose.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            HomeButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            DisplayPreferencesButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            SortButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            SettingsButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            LogoutButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            ShutdownAppButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            SleepButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            RestartButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            ShutdownButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;

            RadioList.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            RadioPosterStrip.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            RadioPoster.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            RadioThumbstrip.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;

            RadioSortAscending.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            RadioSortDescending.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            CheckBoxSortRemember.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;

            ContentGrid.DataContext = new DefaultThemeUserDtoViewModel(masterCommands, apiClient, imageManager, session)
            {
                User = session.CurrentUser,
                ImageHeight = 54
            };

            MainGrid.DataContext = this;
            CheckBoxSortRemember.DataContext = _displayPreferencesViewModel;

            if (displayPreferences != null)
            {
                //Always set to false to begin with in case the user is just doing a quick sort and doesn't want it saved.
                _displayPreferencesViewModel.RememberSorting = false;
            }
        }
コード例 #12
0
 public CommandActionsEntryPoint(ICommandManager commandManager, IPresentationManager presentationManager, IPlaybackManager playbackManager, INavigationService navigationService, IScreensaverManager screensaverManager, ILogManager logManager)
 {
     _commandManager = commandManager;
     _defaultCommandActionMap = new DefaultCommandActionMap(presentationManager, playbackManager, navigationService, screensaverManager, logManager);
 
     _logger = logManager.GetLogger(GetType().Name);
 }
コード例 #13
0
        public PageContentViewModel(INavigationService navigationService, ISessionManager sessionManager, IPlaybackManager playbackManager, ILogger logger, ITheaterApplicationHost appHost, IApiClient apiClient, IPresentationManager presentationManager, IServerEvents serverEvents)
        {
            NavigationService = navigationService;
            SessionManager = sessionManager;
            PlaybackManager = playbackManager;
            Logger = logger;
            AppHost = appHost;
            ApiClient = apiClient;
            PresentationManager = presentationManager;
            ServerEvents = serverEvents;

            MasterCommands = new MasterCommandsViewModel(navigationService, sessionManager, presentationManager, apiClient, logger, appHost, serverEvents);

            NavigationService.Navigated += NavigationServiceNavigated;
            SessionManager.UserLoggedIn += SessionManagerUserLoggedIn;
            SessionManager.UserLoggedOut += SessionManagerUserLoggedOut;
            PlaybackManager.PlaybackStarted += PlaybackManager_PlaybackStarted;
            PlaybackManager.PlaybackCompleted += PlaybackManager_PlaybackCompleted;            

            _dispatcher = Dispatcher.CurrentDispatcher;

            _clockTimer = new Timer(ClockTimerCallback, null, 0, 10000);

            IsLoggedIn = SessionManager.CurrentUser != null;
            var page = NavigationService.CurrentPage;
            IsOnHomePage = page is IHomePage;
            IsOnFullscreenVideo = page is IFullscreenVideoPage;
        }
コード例 #14
0
 public UserListViewModel(IPresentationManager presentationManager, IConnectionManager connectionManager, IImageManager imageManager, ISessionManager sessionManager, INavigationService navigation)
 {
     SessionManager = sessionManager;
     ImageManager = imageManager;
     ConnectionManager = connectionManager;
     PresentationManager = presentationManager;
 }
コード例 #15
0
 public StartupWizardPage(INavigationService nav, IConnectionManager connectionManager, IPresentationManager presentation, ILogger logger)
 {
     _nav = nav;
     _connectionManager = connectionManager;
     _presentation = presentation;
     _logger = logger;
     InitializeComponent();
 }
コード例 #16
0
 public ConfigurationPage(INavigationService nav, ITheaterConfigurationManager config, IPresentationManager presentation, IMediaFilters mediaFilters)
 {
     _nav = nav;
     _config = config;
     _presentation = presentation;
     _mediaFilters = mediaFilters;
     InitializeComponent();
 }
コード例 #17
0
 public PlaybackManager(ITheaterConfigurationManager configurationManager, ILogger logger, IApiClient apiClient, INavigationService nav, IPresentationManager presentationManager)
 {
     _configurationManager = configurationManager;
     _logger = logger;
     _apiClient = apiClient;
     _nav = nav;
     _presentationManager = presentationManager;
 }
コード例 #18
0
 public StartupWizardLav(INavigationService nav, IPresentationManager presentation, IMediaFilters mediaFilters, IApiClient apiClient)
 {
     _nav = nav;
     _presentation = presentation;
     _mediaFilters = mediaFilters;
     _apiClient = apiClient;
     InitializeComponent();
 }
コード例 #19
0
 public UserListViewModel(IPresentationManager presentationManager, IApiClient apiClient, IImageManager imageManager, ISessionManager sessionManager, INavigationService navigation)
 {
     SessionManager = sessionManager;
     _navigation = navigation;
     ImageManager = imageManager;
     ApiClient = apiClient;
     PresentationManager = presentationManager;
 }
コード例 #20
0
 public NetworkSettingsPage(ITheaterConfigurationManager config, IApiClient apiClient, ISessionManager session, IPresentationManager presentationManager)
 {
     _config = config;
     _apiClient = apiClient;
     _session = session;
     _presentationManager = presentationManager;
     InitializeComponent();
 }
コード例 #21
0
 public MediaPlayersPage(INavigationService nav, IPlaybackManager playbackManager, ITheaterConfigurationManager config, IPresentationManager presentation, ISessionManager session)
 {
     _nav = nav;
     _playbackManager = playbackManager;
     _config = config;
     _presentation = presentation;
     _session = session;
     InitializeComponent();
 }
コード例 #22
0
        public PluginsPage(IApplicationHost appHost, INavigationService nav, IPresentationManager presentation, IInstallationManager installationManager)
        {
            _presentation = presentation;
            InitializeComponent();

            var viewModel = new PluginsPageViewModel(appHost, nav, installationManager, presentation);
            viewModel.PropertyChanged += viewModel_PropertyChanged;
            DataContext = viewModel;
        }
コード例 #23
0
        public InstalledPluginPage(InstalledPluginViewModel plugin, IPresentationManager presentationManager)
        {
            _plugin = plugin;
            _presentationManager = presentationManager;

            InitializeComponent();

            DataContext = plugin;
        }
コード例 #24
0
        public PluginCategoryViewModel(IPresentationManager presentationManager, IInstallationManager installationManager, INavigationService nav, IApplicationHost appHost)
        {
            _presentationManager = presentationManager;
            _installationManager = installationManager;
            _nav = nav;
            _appHost = appHost;

            NavigateCommand = new RelayCommand(Navigate);
        }
コード例 #25
0
        public FolderPage(BaseItemDto parent, DisplayPreferences displayPreferences, IApiClient apiClient, IImageManager imageManager, IPresentationManager presentation, INavigationService navigationManager, IPlaybackManager playbackManager, ILogger logger, ListPageConfig options)
        {
            _logger = logger;
            _presentationManager = presentation;
            _imageManager = imageManager;
            _apiClient = apiClient;
            _options = options;

            _parentItem = parent;

            InitializeComponent();

            Loaded += FolderPage_Loaded;

            SetDefaults(displayPreferences);

            var playAllFromHere = parent.IsType("playlist") || parent.IsType("musicalbum");

            _viewModel = new ItemListViewModel(vm => options.CustomItemQuery(vm, displayPreferences), _presentationManager, _imageManager, _apiClient, navigationManager, playbackManager, _logger)
            {
                ImageDisplayHeightGenerator = GetImageDisplayHeight,
                DisplayNameGenerator = options.DisplayNameGenerator ?? GetDisplayName,
                PreferredImageTypesGenerator = GetPreferredImageTypes,

                ShowSidebarGenerator = GetShowSidebar,
                ScrollDirectionGenerator = GetScrollDirection,

                AutoSelectFirstItem = true,

                ShowLoadingAnimation = true,

                PlayAllFromHereOnPlayCommand = playAllFromHere,
                PlayAllFromHereOnNavigateCommand = playAllFromHere
            };

            if (options.ShowTitle)
            {
                _viewModel.OnItemCreated = v =>
                {
                    v.DisplayNameVisibility = Visibility.Visible;
                };
            }

            _viewModel.AddIndexOptions(options.IndexOptions);

            _viewModel.PropertyChanged += _viewModel_PropertyChanged;

            _viewModel.DisplayPreferences = displayPreferences;

            if (!string.IsNullOrEmpty(options.IndexValue))
            {
                var index = options.IndexOptions.First(i => string.Equals(i.Name, options.IndexValue));
                _viewModel.IndexOptionsCollectionView.MoveCurrentTo(index);
            }

            DataContext = _viewModel;
        }
        public SelectableMediaStreamListViewModel(IPresentationManager presentationManager, IPlaybackManager playbackManager)
        {
            _playbackManager = playbackManager;
            _presentationManager = presentationManager;

            ActivateCommand = new RelayCommand(ActivateStream);

            
        }
コード例 #27
0
        public MediaCenterRemoteEntryPoint(IPresentationManager presenation, IPlaybackManager playback, ILogManager logManager, INavigationService nav, IUserInputManager userInput)
        {
            _presenation = presenation;
            _playback = playback;
            _nav = nav;
            _userInput = userInput;

            _logger = logManager.GetLogger(GetType().Name);
        }
コード例 #28
0
        public InstalledPluginListViewModel(IApplicationHost appHost, INavigationService nav, IInstallationManager installationManager, IPresentationManager presentationManager)
        {
            _appHost = appHost;
            _nav = nav;
            _installationManager = installationManager;
            _presentationManager = presentationManager;

            NavigateCommand = new RelayCommand(Navigate);
        }
コード例 #29
0
        public PluginsPage(IApplicationHost appHost, INavigationService nav, IPresentationManager presentation, IInstallationManager installationManager)
        {
            _presentation = presentation;
            InitializeComponent();

            var viewModel = new PluginsPageViewModel(appHost, nav, installationManager, presentation);

            viewModel.PropertyChanged += viewModel_PropertyChanged;
            DataContext = viewModel;
        }
コード例 #30
0
        public ImageViewerPage(IPresentationManager presentation, ImageViewerViewModel viewModel)
        {
            _presentation = presentation;
            InitializeComponent();

            DataContext = viewModel;

            Loaded   += ImageViewerPage_Loaded;
            Unloaded += ImageViewerPage_Unloaded;
        }
コード例 #31
0
 public StartupWizardPage2(INavigationService nav, ITheaterConfigurationManager config, IApiClient apiClient, IPresentationManager presentation, ILogger logger, IMediaFilters mediaFilters)
 {
     _nav          = nav;
     _config       = config;
     _apiClient    = apiClient;
     _presentation = presentation;
     _logger       = logger;
     _mediaFilters = mediaFilters;
     InitializeComponent();
 }
コード例 #32
0
 public HomePageViewModel(IPresentationManager presentationManager, ISessionManager sessionManager, ILogger logger, IImageManager imageManager, INavigationService nav, IPlaybackManager playbackManager, IConnectionManager connectionManager)
 {
     _presentationManager = presentationManager;
     _sessionManager      = sessionManager;
     _logger            = logger;
     _imageManager      = imageManager;
     _nav               = nav;
     _playbackManager   = playbackManager;
     _connectionManager = connectionManager;
 }
コード例 #33
0
        public ThemeVideosPage(IPresentationManager presentation, INavigationService nav, IApiClient apiClient)
        {
            _presentation = presentation;
            _nav          = nav;
            _apiClient    = apiClient;
            InitializeComponent();

            BtnNext.Click    += BtnNext_Click;
            BtnInstall.Click += BtnInstall_Click;
        }
コード例 #34
0
        public ItemPersonListViewModel(IApiClient apiClient, IImageManager imageManager, IPresentationManager presentationManager, INavigationService navigation)
        {
            _apiClient           = apiClient;
            _imageManager        = imageManager;
            _presentationManager = presentationManager;
            _navigation          = navigation;
            _listCollectionView  = new ListCollectionView(_listItems);

            NavigateCommand = new RelayCommand(Navigate);
        }
コード例 #35
0
        public ItemPersonListViewModel(IApiClient apiClient, IImageManager imageManager, IPresentationManager presentationManager, INavigationService navigation)
        {
            _apiClient = apiClient;
            _imageManager = imageManager;
            _presentationManager = presentationManager;
            _navigation = navigation;
            _listCollectionView = new ListCollectionView(_listItems);

            NavigateCommand = new RelayCommand(Navigate);
        }
コード例 #36
0
        public DisplayPreferencesViewModel(DisplayPreferences displayPreferences, IPresentationManager presentation)
        {
            DisplayPreferences = displayPreferences;
            _presentation      = presentation;

            SaveCommand = new RelayCommand(obj => Save());
            IncreaseImageSizeCommand     = new RelayCommand(obj => IncreaseImageSize());
            DecreaseImageSizeCommand     = new RelayCommand(obj => DecreaseImageSize());
            ToggleScrollDirectionCommand = new RelayCommand(obj => ToggleScrollDirection());
        }
コード例 #37
0
        private const double DuplicateCommandPeriod = 500;// Milliseconds


        public CommandManager(IPresentationManager presentationManager, IPlaybackManager playbackManager, INavigationService navigationService, IUserInputManager userInputManager, ILogManager logManager)
        {
            _userInputManager = userInputManager;
            _inputCommandMaps = new InputCommandMaps();

            _userInputManager.KeyDown += input_KeyDown;
            _userInputManager.AppCommand += input_AppCommand;

            _logger = logManager.GetLogger(GetType().Name);
        }
コード例 #38
0
        public BackdropScreensaverWindow(ISessionManager session, IPresentationManager presentationManager, IScreensaverManager screensaverManager, IImageManager imageManager, ILogger logger)
            : base(presentationManager, screensaverManager, logger)
        {
            _session      = session;
            _imageManager = imageManager;
            InitializeComponent();

            DataContext = this;

            LoadScreensaver();
        }
コード例 #39
0
 public HomePageViewModel(IPresentationManager presentationManager, IApiClient apiClient, ISessionManager sessionManager, ILogger logger, IImageManager imageManager, INavigationService nav, IPlaybackManager playbackManager, IServerEvents serverEvents)
 {
     _presentationManager = presentationManager;
     _apiClient           = apiClient;
     _sessionManager      = sessionManager;
     _logger          = logger;
     _imageManager    = imageManager;
     _nav             = nav;
     _playbackManager = playbackManager;
     _serverEvents    = serverEvents;
 }
コード例 #40
0
        public LoginPage(IConnectionManager connectionManager, IImageManager imageManager, INavigationService navigationManager, ISessionManager sessionManager, IPresentationManager presentationManager, ITheaterConfigurationManager configManager)
        {
            PresentationManager  = presentationManager;
            SessionManager       = sessionManager;
            NavigationManager    = navigationManager;
            ImageManager         = imageManager;
            ConnectionManager    = connectionManager;
            ConfigurationManager = configManager;

            InitializeComponent();
        }
コード例 #41
0
 public WebSocketEntryPoint(ISessionManager session, IApiClient apiClient, IJsonSerializer json, ILogManager logManager, IApplicationHost appHost, INavigationService nav, IPlaybackManager playbackManager, IPresentationManager presentation)
 {
     _session         = session;
     _apiClient       = apiClient;
     _json            = json;
     _logger          = logManager.GetLogger(GetType().Name);
     _appHost         = (ApplicationHost)appHost;
     _nav             = nav;
     _playbackManager = playbackManager;
     _presentation    = presentation;
 }
コード例 #42
0
        public TvViewModel(IPresentationManager presentation, IImageManager imageManager, IApiClient apiClient, ISessionManager session, INavigationService nav, IPlaybackManager playback, ILogger logger, double tileWidth, double tileHeight, IServerEvents serverEvents, string parentId)
            : base(presentation, apiClient)
        {
            _sessionManager  = session;
            _playbackManager = playback;
            _imageManager    = imageManager;
            _navService      = nav;
            _logger          = logger;
            _serverEvents    = serverEvents;
            ParentId         = parentId;

            TileWidth  = tileWidth;
            TileHeight = tileHeight;

            var spotlightTileHeight = TileHeight * 2 + TileMargin * 2;
            var spotlightTileWidth  = 16 * (spotlightTileHeight / 9) + 100;

            var lowerSpotlightWidth = spotlightTileWidth / 3 - (TileMargin * 1.5);

            SpotlightViewModel = new ImageViewerViewModel(_imageManager, new List <ImageViewerImage>())
            {
                Height = spotlightTileHeight,
                Width  = spotlightTileWidth,
                CustomCommandAction  = i => _navService.NavigateToItem(i.Item, ViewType.Tv),
                ImageStretch         = Stretch.UniformToFill,
                FocusedCommandAction = () => GalleryItemFocused()
            };

            GenresViewModel = new GalleryViewModel(ApiClient, _imageManager, _navService)
            {
                GalleryHeight        = TileHeight,
                GalleryWidth         = lowerSpotlightWidth,
                CustomCommandAction  = () => NavigateWithLoading(NavigateToGenresInternal),
                FocusedCommandAction = () => GalleryItemFocused()
            };

            AllShowsViewModel = new GalleryViewModel(ApiClient, _imageManager, _navService)
            {
                GalleryHeight        = TileHeight,
                GalleryWidth         = lowerSpotlightWidth,
                CustomCommandAction  = () => NavigateWithLoading(NavigateToAllShows),
                FocusedCommandAction = () => GalleryItemFocused()
            };

            UpcomingViewModel = new GalleryViewModel(ApiClient, _imageManager, _navService)
            {
                GalleryHeight        = TileHeight,
                GalleryWidth         = lowerSpotlightWidth,
                CustomCommandAction  = () => NavigateWithLoading(NavigateToAllShows),
                FocusedCommandAction = () => GalleryItemFocused()
            };

            LoadViewModels();
        }
コード例 #43
0
        public ConfigureMediaPlayerPage(PlayerConfiguration playerConfig, IPlaybackManager playbackManager, ITheaterConfigurationManager config, IPresentationManager presentation, INavigationService nav, ISessionManager session)
        {
            _playerConfig    = playerConfig;
            _playbackManager = playbackManager;
            _config          = config;
            _presentation    = presentation;
            _nav             = nav;
            _session         = session;

            InitializeComponent();
        }
コード例 #44
0
        public ManualLoginPage(string initialUsername, ISessionManager sessionManager, IPresentationManager presentationManager)
        {
            PresentationManager = presentationManager;
            SessionManager      = sessionManager;
            InitializeComponent();

            TxtUsername.Text = initialUsername;

            Loaded          += LoginPage_Loaded;
            BtnSubmit.Click += BtnSubmit_Click;
        }
コード例 #45
0
 public AppearancePage(ITheaterConfigurationManager config, ISessionManager session, IImageManager imageManager, IApiClient apiClient, IPresentationManager presentation, IThemeManager themeManager, INavigationService nav)
 {
     _config       = config;
     _session      = session;
     _imageManager = imageManager;
     _apiClient    = apiClient;
     _presentation = presentation;
     _themeManager = themeManager;
     _nav          = nav;
     InitializeComponent();
 }
コード例 #46
0
 public InternalDirectShowPlayer(ILogManager logManager, IHiddenWindow hiddenWindow, IPresentationManager presentation, IUserInputManager userInput, IApiClient apiClient, IPlaybackManager playbackManager, ITheaterConfigurationManager config, IIsoManager isoManager)
 {
     _logger          = logManager.GetLogger("DirectShowPlayer");
     _hiddenWindow    = hiddenWindow;
     _presentation    = presentation;
     _userInput       = userInput;
     _apiClient       = apiClient;
     _playbackManager = playbackManager;
     _config          = config;
     _isoManager      = isoManager;
 }
コード例 #47
0
        public AppListViewModel(IPresentationManager presentationManager, ISessionManager sessionManager, ILogger logger)
        {
            Logger              = logger;
            SessionManager      = sessionManager;
            PresentationManager = presentationManager;

            LaunchCommand = new RelayCommand(Launch);

            Apps = new ListCollectionView(_listItems);

            ReloadApps();
        }
コード例 #48
0
        public ManualLoginPage(string initialUsername, bool?isAutoLoginChecked, ISessionManager sessionManager, IPresentationManager presentationManager)
        {
            PresentationManager = presentationManager;
            SessionManager      = sessionManager;
            InitializeComponent();

            TxtUsername.Text       = initialUsername;
            ChkAutoLogin.IsChecked = isAutoLoginChecked;

            Loaded          += LoginPage_Loaded;
            BtnSubmit.Click += BtnSubmit_Click;
        }
コード例 #49
0
        public AppearancePage(ITheaterConfigurationManager config, ISessionManager session, IImageManager imageManager, IPresentationManager presentation, IThemeManager themeManager, INavigationService nav, IScreensaverManager screensaverManager)
        {
            _config             = config;
            _session            = session;
            _imageManager       = imageManager;
            _presentation       = presentation;
            _themeManager       = themeManager;
            _nav                = nav;
            _screensaverManager = screensaverManager;

            InitializeComponent();
        }
コード例 #50
0
        public ServerSelectionPage(IConnectionManager connectionManager,
                                   IPresentationManager presentationManager,
                                   List <ServerInfo> servers, INavigationService navigationManager, ILogger logger)
        {
            PresentationManager = presentationManager;
            ConnectionManager   = connectionManager;
            _servers            = servers;
            Logger            = logger;
            NavigationManager = navigationManager;

            InitializeComponent();
        }
コード例 #51
0
        public DetailPage(ItemViewModel itemViewModel, IPresentationManager presentation)
        {
            _itemViewModel = itemViewModel;
            _presentation  = presentation;
            InitializeComponent();

            Loaded += PanoramaDetailPage_Loaded;

            SetTitle(_itemViewModel.Item);

            DataContextChanged += PanoramaDetailPage_DataContextChanged;
        }
コード例 #52
0
 public DetailPageViewModel(ItemViewModel item, IApiClient apiClient, ISessionManager sessionManager, IImageManager imageManager, IPresentationManager presentationManager, IPlaybackManager playback, INavigationService navigation, ILogger logger, ViewType context)
 {
     _apiClient           = apiClient;
     _sessionManager      = sessionManager;
     _imageManager        = imageManager;
     _presentationManager = presentationManager;
     _playback            = playback;
     _navigation          = navigation;
     _logger       = logger;
     Context       = context;
     ItemViewModel = item;
 }
コード例 #53
0
        public FolderPage(BaseItemDto parent, DisplayPreferences displayPreferences, IApiClient apiClient, IImageManager imageManager, ISessionManager sessionManager, IPresentationManager presentation, INavigationService navigationManager, IPlaybackManager playbackManager, ILogger logger, IServerEvents serverEvents, ListPageConfig options)
        {
            _navigationManager   = navigationManager;
            _playbackManager     = playbackManager;
            _logger              = logger;
            _serverEvents        = serverEvents;
            _presentationManager = presentation;
            _sessionManager      = sessionManager;
            _imageManager        = imageManager;
            _apiClient           = apiClient;
            _options             = options;
            _displayPreferences  = displayPreferences;

            _parentItem = parent;

            InitializeComponent();

            Loaded   += FolderPage_Loaded;
            Unloaded += FolderPage_Unloaded;

            SetDefaults(displayPreferences);

            _viewModel = new ItemListViewModel(GetItemsAsync, _presentationManager, _imageManager, _apiClient, _navigationManager, _playbackManager, _logger, _serverEvents)
            {
                ImageDisplayHeightGenerator  = GetImageDisplayHeight,
                DisplayNameGenerator         = GetDisplayName,
                PreferredImageTypesGenerator = GetPreferredImageTypes,

                ShowSidebarGenerator     = GetShowSidebar,
                ScrollDirectionGenerator = GetScrollDirection,

                AutoSelectFirstItem = true,

                ShowLoadingAnimation = true
            };

            _viewModel.AddIndexOptions(options.IndexOptions);

            _viewModel.PropertyChanged += _viewModel_PropertyChanged;

            _viewModel.DisplayPreferences = displayPreferences;

            DataContext = _viewModel;

            UpdateSortTitle();
            UpdateSortOrder();

            BtnSort.Visibility = _options.SortOptions.Count > 0
                                     ? Visibility.Visible
                                     : Visibility.Collapsed;

            BtnSort.Click += BtnSort_Click;
        }
コード例 #54
0
        public HomePage(BaseItemDto parentItem, IPresentationManager presentationManager)
        {
            _presentationManager = presentationManager;
            _parentItem          = parentItem;

            InitializeComponent();

            Loaded   += HomePage_Loaded;
            Unloaded += HomePage_Unloaded;

            DataContextChanged += PanoramaDetailPage_DataContextChanged;
        }
コード例 #55
0
        private double _currentPlaybackRate = 1.0; // Todo - move to reportable property of IPlaybackManager

        public DefaultCommandActionMap(IPresentationManager presentationManager, IPlaybackManager playbackManager, INavigationService navigationService, IScreensaverManager screensaverManager, ILogManager logManager)
        {
            _presentationManager = presentationManager;
            _playbackManager     = playbackManager;
            _screensaverManager  = screensaverManager;
            _navigationService   = navigationService;
            _logger = logManager.GetLogger(GetType().Name);
            _globalCommandActionMap   = CreateGlobalCommandActionMap();
            _nullCommandActionMapping = new CommandActionMapping(Command.Null, NullAction);

            _playbackManager.PlaybackStarted   += PlaybackManagerPlaybackManagerStarted;
            _playbackManager.PlaybackCompleted += PlaybackManagerPlaybackManagerCompleted;
        }
コード例 #56
0
        public DisplayPreferencesViewModel(DisplayPreferences displayPreferences, IPresentationManager presentation, ITheaterConfigurationManager configurationManager, ISessionManager sessionManager)
        {
            DisplayPreferences    = displayPreferences;
            _presentation         = presentation;
            _configurationManager = configurationManager;
            _sessionManager       = sessionManager;
            _userConfig           = configurationManager.GetUserTheaterConfiguration(sessionManager.CurrentUser.Id);

            SaveCommand = new RelayCommand(obj => Save());
            IncreaseImageSizeCommand     = new RelayCommand(obj => IncreaseImageSize());
            DecreaseImageSizeCommand     = new RelayCommand(obj => DecreaseImageSize());
            ToggleScrollDirectionCommand = new RelayCommand(obj => ToggleScrollDirection());
        }
コード例 #57
0
 public WebSocketEntryPoint(ISessionManager sessionManager, ILogManager logManager, IApplicationHost appHost, IImageManager imageManager, INavigationService navigationService, IPlaybackManager playbackManager, IPresentationManager presentationManager, ICommandManager commandManager, IUserInputManager userInputManager, IConnectionManager connectionManager)
 {
     _sessionManager      = sessionManager;
     _logger              = logManager.GetLogger(GetType().Name);
     _appHost             = (ApplicationHost)appHost;
     _imageManager        = imageManager;
     _navigationService   = navigationService;
     _playbackManager     = playbackManager;
     _presentationManager = presentationManager;
     _commandManager      = commandManager;
     _userInputManager    = userInputManager;
     _connectionManager   = connectionManager;
 }
コード例 #58
0
 public InternalDirectShowPlayer(ILogManager logManager, IHiddenWindow hiddenWindow, IPresentationManager presentation, ISessionManager sessionManager, IApiClient apiClient, IPlaybackManager playbackManager, ITheaterConfigurationManager config, IIsoManager isoManager, IUserInputManager inputManager, IZipClient zipClient, IHttpClient httpClient)
 {
     _logger          = logManager.GetLogger("InternalDirectShowPlayer");
     _hiddenWindow    = hiddenWindow;
     _presentation    = presentation;
     _sessionManager  = sessionManager;
     _apiClient       = apiClient;
     _httpClient      = httpClient;
     _playbackManager = playbackManager;
     _config          = config;
     _isoManager      = isoManager;
     _inputManager    = inputManager;
     _zipClient       = zipClient;
 }
コード例 #59
0
        public DetailPage(ItemViewModel itemViewModel, IPresentationManager presentation)
        {
            _itemViewModel          = itemViewModel;
            _presentation           = presentation;
            _isFocusFunctionButtons = true;
            _isInitialMenuSelection = true;
            InitializeComponent();

            Loaded += PanoramaDetailPage_Loaded;

            SetTitle(_itemViewModel.Item);

            DataContextChanged += PanoramaDetailPage_DataContextChanged;
        }
コード例 #60
0
        public SettingsPage(IPresentationManager presentationManager, INavigationService nav, ISessionManager session, IApplicationHost appHost, IInstallationManager installationManager)
        {
            _presentationManager = presentationManager;
            _nav                 = nav;
            _session             = session;
            _appHost             = appHost;
            _installationManager = installationManager;

            InitializeComponent();

            Loaded += SettingsPage_Loaded;
            MenuList.ItemInvoked       += MenuList_ItemInvoked;
            PluginMenuList.ItemInvoked += MenuList_ItemInvoked;
        }