LibreOffice Module avmedia (master) 1
gtkplayer.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
9
10#pragma once
11
12#include <sal/config.h>
13
14#include <string_view>
15
16#include <com/sun/star/lang/XServiceInfo.hpp>
17#include <com/sun/star/media/XPlayer.hpp>
18#include <com/sun/star/media/XPlayerNotifier.hpp>
22
23typedef struct _GtkMediaStream GtkMediaStream;
24typedef struct _GtkWidget GtkWidget;
25
26namespace avmedia::gtk
27{
28typedef cppu::WeakComponentImplHelper<css::media::XPlayer, css::media::XPlayerNotifier,
29 css::lang::XServiceInfo>
31
32class GtkPlayer final : public cppu::BaseMutex, public GtkPlayer_BASE
33{
34public:
35 explicit GtkPlayer();
36 virtual ~GtkPlayer() override;
37
38 bool create(const OUString& rURL);
39
40 virtual void SAL_CALL start() override;
41 virtual void SAL_CALL stop() override;
42 virtual sal_Bool SAL_CALL isPlaying() override;
43 virtual double SAL_CALL getDuration() override;
44 virtual void SAL_CALL setMediaTime(double fTime) override;
45 virtual double SAL_CALL getMediaTime() override;
46 virtual void SAL_CALL setPlaybackLoop(sal_Bool bSet) override;
47 virtual sal_Bool SAL_CALL isPlaybackLoop() override;
48 virtual void SAL_CALL setMute(sal_Bool bSet) override;
49 virtual sal_Bool SAL_CALL isMute() override;
50 virtual void SAL_CALL setVolumeDB(sal_Int16 nVolumeDB) override;
51 virtual sal_Int16 SAL_CALL getVolumeDB() override;
52 virtual css::awt::Size SAL_CALL getPreferredPlayerWindowSize() override;
53 virtual css::uno::Reference<css::media::XPlayerWindow>
54 SAL_CALL createPlayerWindow(const css::uno::Sequence<css::uno::Any>& rArgs) override;
55 virtual css::uno::Reference<css::media::XFrameGrabber> SAL_CALL createFrameGrabber() override;
56
57 virtual OUString SAL_CALL getImplementationName() override;
58 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
59 virtual css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override;
60
61 virtual void SAL_CALL
62 addPlayerListener(const css::uno::Reference<css::media::XPlayerListener>& rListener) override;
63 virtual void SAL_CALL removePlayerListener(
64 const css::uno::Reference<css::media::XPlayerListener>& rListener) override;
65
66 virtual void SAL_CALL disposing() final override;
67
68 void notifyListeners();
69 void installNotify();
70 void uninstallNotify();
71
72private:
73 void cleanup();
74
76
77 OUString m_aURL;
78 css::awt::Rectangle m_aArea; // Area of the player window.
81 unsigned long m_nNotifySignalId;
83 unsigned long m_nTimeoutId;
85};
86
87} // namespace avmedia::gtk
88
89/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
css::awt::Rectangle m_aArea
Definition: gtkplayer.hxx:78
virtual css::uno::Reference< css::media::XFrameGrabber > SAL_CALL createFrameGrabber() override
Definition: gtkplayer.cxx:438
virtual OUString SAL_CALL getImplementationName() override
Definition: gtkplayer.cxx:452
virtual void SAL_CALL addPlayerListener(const css::uno::Reference< css::media::XPlayerListener > &rListener) override
Definition: gtkplayer.cxx:371
unsigned long m_nInvalidateSizeSignalId
Definition: gtkplayer.hxx:82
virtual sal_Bool SAL_CALL isMute() override
Definition: gtkplayer.cxx:274
virtual void SAL_CALL setMediaTime(double fTime) override
Definition: gtkplayer.cxx:217
virtual void SAL_CALL stop() override
Definition: gtkplayer.cxx:185
virtual void SAL_CALL setVolumeDB(sal_Int16 nVolumeDB) override
Definition: gtkplayer.cxx:280
virtual css::awt::Size SAL_CALL getPreferredPlayerWindowSize() override
Definition: gtkplayer.cxx:304
virtual double SAL_CALL getMediaTime() override
Definition: gtkplayer.cxx:235
virtual sal_Int16 SAL_CALL getVolumeDB() override
Definition: gtkplayer.cxx:290
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: gtkplayer.cxx:457
virtual sal_Bool SAL_CALL isPlaybackLoop() override
Definition: gtkplayer.cxx:253
unsigned long m_nNotifySignalId
Definition: gtkplayer.hxx:81
comphelper::OMultiTypeInterfaceContainerHelper2 m_lListener
Definition: gtkplayer.hxx:75
GtkMediaStream * m_pStream
Definition: gtkplayer.hxx:79
sal_Int16 m_nUnmutedVolume
Definition: gtkplayer.hxx:84
unsigned long m_nTimeoutId
Definition: gtkplayer.hxx:83
virtual void SAL_CALL disposing() final override
Definition: gtkplayer.cxx:81
virtual double SAL_CALL getDuration() override
Definition: gtkplayer.cxx:205
virtual void SAL_CALL start() override
Definition: gtkplayer.cxx:177
virtual sal_Bool SAL_CALL isPlaying() override
Definition: gtkplayer.cxx:193
virtual void SAL_CALL removePlayerListener(const css::uno::Reference< css::media::XPlayerListener > &rListener) override
Definition: gtkplayer.cxx:385
virtual ~GtkPlayer() override
Definition: gtkplayer.cxx:50
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: gtkplayer.cxx:462
virtual void SAL_CALL setMute(sal_Bool bSet) override
Definition: gtkplayer.cxx:263
virtual css::uno::Reference< css::media::XPlayerWindow > SAL_CALL createPlayerWindow(const css::uno::Sequence< css::uno::Any > &rArgs) override
Definition: gtkplayer.cxx:320
virtual void SAL_CALL setPlaybackLoop(sal_Bool bSet) override
Definition: gtkplayer.cxx:247
bool create(const OUString &rURL)
Definition: gtkplayer.cxx:135
struct _GtkWidget GtkWidget
Definition: gtkplayer.hxx:24
struct _GtkMediaStream GtkMediaStream
Definition: gtkplayer.hxx:23
cppu::WeakComponentImplHelper< css::media::XPlayer, css::media::XPlayerNotifier, css::lang::XServiceInfo > GtkPlayer_BASE
Definition: gtkplayer.hxx:30
unsigned char sal_Bool