public NowPlayingInterface()
        {
            GtkElementsService service = ServiceManager.Get <GtkElementsService> ();

            primary_window = service.PrimaryWindow;

            Contents = new NowPlayingContents();

            // This is my really sweet hack - it's where the video widget
            // is sent when the source is not active. This keeps the video
            // widget from being completely destroyed, causing problems with
            // its internal windowing and GstXOverlay. It's also conveniently
            // the window that is used to do fullscreen video. Sweeeeeeeeeet.
            video_window         = new FullscreenWindow(service.PrimaryWindow);
            video_window.Hidden += OnFullscreenWindowHidden;
            video_window.Realize();
            video_window.Add(Contents);

            frame = new Hyena.Widgets.RoundedFrame();
            frame.SetFillColor(new Cairo.Color(0, 0, 0));
            frame.DrawBorder = false;
            frame.Show();

            PackStart(frame, true, true, 0);

            fullscreen_adapter = new FullscreenAdapter();
            fullscreen_adapter.SuggestUnfullscreen += OnAdapterSuggestUnfullscreen;
            screensaver = new ScreensaverManager();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Finds the parts.
        /// </summary>
        protected override void FindParts()
        {
            base.FindParts();

            ThemeManager.AddParts(GetExports <ITheme>());
            PresentationManager.AddParts(GetExports <IAppFactory>(), GetExports <ISettingsPage>(), GetExports <IHomePageInfo>());
            PlaybackManager.AddParts(GetExports <IMediaPlayer>());
            ScreensaverManager.AddParts(GetExports <IScreensaverFactory>());
        }
Exemplo n.º 3
0
        protected void SetupFullscreenHandling()
        {
            GtkElementsService service = ServiceManager.Get <GtkElementsService> ();

            fullscreen_adapter = new FullscreenAdapter();
            screensaver        = new ScreensaverManager();

            video_window         = new FullscreenWindow(service.PrimaryWindow);
            video_window.Hidden += OnFullscreenWindowHidden;
            video_window.Realize();
        }
Exemplo n.º 4
0
        /// <summary>
        /// Registers resources that classes will depend on
        /// </summary>
        protected override async Task RegisterResources(IProgress <double> progress)
        {
            ReloadApiClient();

            await base.RegisterResources(progress).ConfigureAwait(false);

            RegisterSingleInstance <ITheaterApplicationHost>(this);

            MediaFilters = new MediaFilters(HttpClient, Logger);
            RegisterSingleInstance(MediaFilters);

            ThemeManager = new ThemeManager(() => PresentationManager, Logger);
            RegisterSingleInstance(ThemeManager);

            PresentationManager = new TheaterApplicationWindow(Logger, ThemeManager, ApiClient, () => SessionManager, TheaterConfigurationManager);
            RegisterSingleInstance(PresentationManager);

            RegisterSingleInstance(ApplicationPaths);

            RegisterSingleInstance <ITheaterConfigurationManager>(TheaterConfigurationManager);

            var hiddenWindow = new AppHiddenWIndow();

            ImageManager = new ImageManager(ApiClient, ApplicationPaths, TheaterConfigurationManager);
            RegisterSingleInstance(ImageManager);

            NavigationService = new NavigationService(ThemeManager, () => PlaybackManager, ApiClient, PresentationManager, TheaterConfigurationManager, () => SessionManager, this, InstallationManager, ImageManager, Logger, () => UserInputManager, ApiWebSocket, hiddenWindow);
            RegisterSingleInstance(NavigationService);

            UserInputManager = new UserInputManager(PresentationManager, NavigationService, hiddenWindow, LogManager);
            RegisterSingleInstance(UserInputManager);

            PlaybackManager = new PlaybackManager(TheaterConfigurationManager, Logger, ApiClient, NavigationService, PresentationManager);
            RegisterSingleInstance(PlaybackManager);

            CommandManager = new CommandManager(PresentationManager, PlaybackManager, NavigationService, UserInputManager, LogManager);
            RegisterSingleInstance(CommandManager);

            SessionManager = new SessionManager(NavigationService, ApiClient, Logger, ThemeManager, TheaterConfigurationManager, PlaybackManager);
            RegisterSingleInstance(SessionManager);

            ScreensaverManager = new ScreensaverManager(UserInputManager, PresentationManager, PlaybackManager, SessionManager, ApiClient, TheaterConfigurationManager, LogManager, ApiWebSocket);
            RegisterSingleInstance(ScreensaverManager);

            RegisterSingleInstance(ApiClient);

            RegisterSingleInstance <IHiddenWindow>(hiddenWindow);

            RegisterSingleInstance <IServerEvents>(ApiWebSocket);
        }
Exemplo n.º 5
0
        public NowPlayingInterface()
        {
            GtkElementsService service = ServiceManager.Get <GtkElementsService> ();

            primary_window = service.PrimaryWindow;

            Contents = new NowPlayingContents();
            Contents.ButtonPressEvent += (o, a) => {
                if (a.Event.Type == Gdk.EventType.TwoButtonPress)
                {
                    var iaservice = ServiceManager.Get <InterfaceActionService> ();
                    var action    = iaservice.ViewActions["FullScreenAction"] as Gtk.ToggleAction;
                    if (action != null && action.Sensitive)
                    {
                        action.Active = !action.Active;
                    }
                }
            };

            // This is my really sweet hack - it's where the video widget
            // is sent when the source is not active. This keeps the video
            // widget from being completely destroyed, causing problems with
            // its internal windowing and GstXOverlay. It's also conveniently
            // the window that is used to do fullscreen video. Sweeeeeeeeeet.
            video_window         = new FullscreenWindow(service.PrimaryWindow);
            video_window.Hidden += OnFullscreenWindowHidden;
            video_window.Realize();
            video_window.Add(Contents);

            frame = new Hyena.Widgets.RoundedFrame();
            frame.SetFillColor(new Cairo.Color(0, 0, 0));
            frame.DrawBorder = false;
            frame.Show();

            PackStart(frame, true, true, 0);

            fullscreen_adapter = new FullscreenAdapter();
            fullscreen_adapter.SuggestUnfullscreen += OnAdapterSuggestUnfullscreen;
            screensaver = new ScreensaverManager();
        }
        public NowPlayingInterface()
        {
            GtkElementsService service = ServiceManager.Get <GtkElementsService> ();

            primary_window = service.PrimaryWindow;

            Contents = new NowPlayingContents();

            fullscreen_window         = new FullscreenWindow(primary_window);
            fullscreen_window.Hidden += OnFullscreenWindowHidden;

            frame = new Hyena.Widgets.RoundedFrame();
            frame.SetFillColor(new Cairo.Color(0, 0, 0));
            frame.DrawBorder = false;
            frame.Child      = Contents;
            frame.Show();

            PackStart(frame, true, true, 0);

            fullscreen_adapter = new FullscreenAdapter();
            fullscreen_adapter.SuggestUnfullscreen += OnAdapterSuggestUnfullscreen;
            screensaver = new ScreensaverManager();
        }