From 267c6f2ac71f92999e969232431ba04678e7437e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 07:54:39 +0200 Subject: Adding upstream version 4:24.2.0. Signed-off-by: Daniel Baumann --- avmedia/source/gtk/gtkplayer.hxx | 89 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 avmedia/source/gtk/gtkplayer.hxx (limited to 'avmedia/source/gtk/gtkplayer.hxx') diff --git a/avmedia/source/gtk/gtkplayer.hxx b/avmedia/source/gtk/gtkplayer.hxx new file mode 100644 index 0000000000..46e416e79e --- /dev/null +++ b/avmedia/source/gtk/gtkplayer.hxx @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#pragma once + +#include + +#include + +#include +#include +#include +#include +#include +#include + +typedef struct _GtkMediaStream GtkMediaStream; +typedef struct _GtkWidget GtkWidget; + +namespace avmedia::gtk +{ +typedef cppu::WeakComponentImplHelper + GtkPlayer_BASE; + +class GtkPlayer final : public cppu::BaseMutex, public GtkPlayer_BASE +{ +public: + explicit GtkPlayer(); + virtual ~GtkPlayer() override; + + bool create(const OUString& rURL); + + virtual void SAL_CALL start() override; + virtual void SAL_CALL stop() override; + virtual sal_Bool SAL_CALL isPlaying() override; + virtual double SAL_CALL getDuration() override; + virtual void SAL_CALL setMediaTime(double fTime) override; + virtual double SAL_CALL getMediaTime() override; + virtual void SAL_CALL setPlaybackLoop(sal_Bool bSet) override; + virtual sal_Bool SAL_CALL isPlaybackLoop() override; + virtual void SAL_CALL setMute(sal_Bool bSet) override; + virtual sal_Bool SAL_CALL isMute() override; + virtual void SAL_CALL setVolumeDB(sal_Int16 nVolumeDB) override; + virtual sal_Int16 SAL_CALL getVolumeDB() override; + virtual css::awt::Size SAL_CALL getPreferredPlayerWindowSize() override; + virtual css::uno::Reference + SAL_CALL createPlayerWindow(const css::uno::Sequence& rArgs) override; + virtual css::uno::Reference SAL_CALL createFrameGrabber() override; + + virtual OUString SAL_CALL getImplementationName() override; + virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; + virtual css::uno::Sequence SAL_CALL getSupportedServiceNames() override; + + virtual void SAL_CALL + addPlayerListener(const css::uno::Reference& rListener) override; + virtual void SAL_CALL removePlayerListener( + const css::uno::Reference& rListener) override; + + virtual void SAL_CALL disposing() final override; + + void notifyListeners(); + void installNotify(); + void uninstallNotify(); + +private: + void cleanup(); + + comphelper::OMultiTypeInterfaceContainerHelper2 m_lListener; + + OUString m_aURL; + css::awt::Rectangle m_aArea; // Area of the player window. + GtkMediaStream* m_pStream; + GtkWidget* m_pVideo; + unsigned long m_nNotifySignalId; + unsigned long m_nInvalidateSizeSignalId; + unsigned long m_nTimeoutId; + sal_Int16 m_nUnmutedVolume; +}; + +} // namespace avmedia::gtk + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ -- cgit v1.2.3