summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/media
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/media
parentInitial commit. (diff)
downloadlibreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz
libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.zip
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'offapi/com/sun/star/media')
-rw-r--r--offapi/com/sun/star/media/Manager.idl34
-rw-r--r--offapi/com/sun/star/media/XFrameGrabber.idl43
-rw-r--r--offapi/com/sun/star/media/XManager.idl43
-rw-r--r--offapi/com/sun/star/media/XPlayer.idl142
-rw-r--r--offapi/com/sun/star/media/XPlayerListener.idl38
-rw-r--r--offapi/com/sun/star/media/XPlayerNotifier.idl46
-rw-r--r--offapi/com/sun/star/media/XPlayerWindow.idl55
-rw-r--r--offapi/com/sun/star/media/ZoomLevel.idl80
8 files changed, 481 insertions, 0 deletions
diff --git a/offapi/com/sun/star/media/Manager.idl b/offapi/com/sun/star/media/Manager.idl
new file mode 100644
index 000000000..c5cdf1002
--- /dev/null
+++ b/offapi/com/sun/star/media/Manager.idl
@@ -0,0 +1,34 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_media_Manager_idl__
+#define __com_sun_star_media_Manager_idl__
+
+#include <com/sun/star/media/XManager.idl>
+
+module com { module sun { module star { module media {
+
+/** a com::sun::star::media::XPlayer factory.
+ This helps creating new players.
+ */
+service Manager : XManager;
+
+}; }; }; };
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/media/XFrameGrabber.idl b/offapi/com/sun/star/media/XFrameGrabber.idl
new file mode 100644
index 000000000..7405b44b7
--- /dev/null
+++ b/offapi/com/sun/star/media/XFrameGrabber.idl
@@ -0,0 +1,43 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_media_XFrameGrabber_idl__
+#define __com_sun_star_media_XFrameGrabber_idl__
+
+#include <com/sun/star/graphic/XGraphic.idl>
+
+module com { module sun { module star { module media {
+
+/** This interface provides an easy access to a stream images using
+ their position in the time.
+ */
+interface XFrameGrabber
+{
+ /** returns the image of the underlying stream at a given position
+
+ @param fMediaTime
+ the time in seconds of the image to get. This time has to
+ be a positive value inferior to the stream duration.
+ */
+ ::com::sun::star::graphic::XGraphic grabFrame( [in] double fMediaTime );
+};
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/media/XManager.idl b/offapi/com/sun/star/media/XManager.idl
new file mode 100644
index 000000000..db2df788e
--- /dev/null
+++ b/offapi/com/sun/star/media/XManager.idl
@@ -0,0 +1,43 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_media_XManager_idl__
+#define __com_sun_star_media_XManager_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/media/XPlayer.idl>
+
+module com { module sun { module star { module media {
+
+/** the com::sun::star::media::XPlayer
+ factory interface
+ */
+interface XManager
+{
+ /** creates a new media player
+
+ @param aURL
+ the URL of the media to play
+ */
+ XPlayer createPlayer( [in] string aURL );
+};
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/media/XPlayer.idl b/offapi/com/sun/star/media/XPlayer.idl
new file mode 100644
index 000000000..2d3dc234a
--- /dev/null
+++ b/offapi/com/sun/star/media/XPlayer.idl
@@ -0,0 +1,142 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_media_XPlayer_idl__
+#define __com_sun_star_media_XPlayer_idl__
+
+#include <com/sun/star/awt/Size.idl>
+#include <com/sun/star/media/XPlayerWindow.idl>
+#include <com/sun/star/media/XFrameGrabber.idl>
+
+module com { module sun { module star { module media {
+
+/** is the multimedia stream handling interface. This allows to
+ perform every basic operation on videos and sounds.
+ */
+interface XPlayer
+{
+ /** starts reading the stream from the current position.
+ */
+ void start();
+
+ /** stops reading the stream and leave the cursor at its current
+ position.
+ */
+ void stop();
+
+ /** indicates whether the stream is played or not.
+
+ @returns
+ `TRUE` if the stream is played, `FALSE` otherwise
+ */
+ boolean isPlaying();
+
+ /** gets the stream length
+
+ @returns
+ the stream length in second
+ */
+ double getDuration();
+
+ /** sets the new cursor position in the media stream. After using
+ this method the stream is stopped.
+
+ @param fTime
+ the new position to set in seconds
+ */
+ void setMediaTime( [in] double fTime );
+
+ /** gets the current position of the cursor in the stream
+
+ @returns
+ the cursor position in seconds
+ */
+ double getMediaTime();
+
+ /** sets whether the stream reading should restart at the stream
+ start after the end of the stream.
+
+ @param bSet
+ loops if set to `TRUE`, otherwise stops at the end of the
+ stream.
+ */
+ void setPlaybackLoop( [in] boolean bSet );
+
+ /** indicates whether the stream reading will restart after the
+ end of the stream.
+
+ @returns
+ `TRUE` if the stream will loop, `FALSE` otherwise.
+ */
+ boolean isPlaybackLoop();
+
+ /** sets the audio volume in decibel.
+
+ @param nDB
+ the new volume in Decibel
+ */
+ void setVolumeDB( [in] short nDB );
+
+ /** gets the current audio volume in decibel
+
+ @returns
+ the volume in decibel
+ */
+ short getVolumeDB();
+
+ /** sets the volume to <code>0</code> or to its previous value.
+
+ @param bSet
+ sets the volume to <code>0</code> if `TRUE`, and switch
+ to the previous non-null value if `FALSE`
+ */
+ void setMute( [in] boolean bSet );
+
+ /** gets whether the volume is temporarily down to <code>0</code>
+ or not.
+
+ @returns
+ `TRUE` if the volume is temporarily set to <code>0</code>,
+ `FALSE` otherwise.
+ */
+ boolean isMute();
+
+ /** gets the preferred window size
+
+ @returns
+ the com::sun::star::awt::Size
+ */
+ ::com::sun::star::awt::Size getPreferredPlayerWindowSize();
+
+ /** gets a new player window for this stream control
+
+ @param aArguments
+ arguments passed to the window during its creation.
+ */
+ XPlayerWindow createPlayerWindow( [in] sequence< any > aArguments );
+
+ /** gets a frame grabber for this stream.
+ */
+ XFrameGrabber createFrameGrabber();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/media/XPlayerListener.idl b/offapi/com/sun/star/media/XPlayerListener.idl
new file mode 100644
index 000000000..b0ee61405
--- /dev/null
+++ b/offapi/com/sun/star/media/XPlayerListener.idl
@@ -0,0 +1,38 @@
+/* -*- 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/.
+ */
+
+#ifndef __com_sun_star_ui_dialogs_XPlayerListener_idl__
+#define __com_sun_star_ui_dialogs_XPlayerListener_idl__
+
+#include <com/sun/star/lang/XEventListener.idl>
+
+module com { module sun { module star { module media {
+
+/** Interface to be implemented by a Player listener.
+
+ <p> The XPlayerListener interface must be implemented by
+ the clients of the Player service which need to be informed about
+ events while the Player service is displayed.</p>
+
+ @since LibreOffice 7.4
+*/
+
+interface XPlayerListener : com::sun::star::lang::XEventListener
+{
+ /** A client receives this event when the preferred player size of an XPlayer
+ is available to be queried.
+ */
+ void preferredPlayerWindowSizeAvailable([in] com::sun::star::lang::EventObject e);
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/offapi/com/sun/star/media/XPlayerNotifier.idl b/offapi/com/sun/star/media/XPlayerNotifier.idl
new file mode 100644
index 000000000..b34f64f64
--- /dev/null
+++ b/offapi/com/sun/star/media/XPlayerNotifier.idl
@@ -0,0 +1,46 @@
+/* -*- 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/.
+ */
+
+#ifndef __com_sun_star_ui_dialogs_XPlayerNotifier_idl__
+#define __com_sun_star_ui_dialogs_XPlayerNotifier_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/media/XPlayerListener.idl>
+
+module com { module sun { module star { module media {
+
+/** Interface to be implemented in order to support listener management.
+ @since LibreOffice 7.4
+*/
+interface XPlayerNotifier : com::sun::star::uno::XInterface
+{
+ /** Interface for clients to register as XPlayerListener
+
+ @param xListener
+ The XPlayerListener interface of the listener that
+ wants to receive events.
+ <p>Invalid interfaces or NULL values will be ignored.</p>
+ */
+ void addPlayerListener( [in] XPlayerListener xListener );
+
+ /** Interface for clients to unregister as XPlayerListener.
+
+ @param xListener
+ The XPlayerListener interface of the listener that
+ wants to receive events.
+ <p>Invalid interfaces or NULL values will be ignored.</p>
+ */
+ void removePlayerListener( [in] XPlayerListener xListener );
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/offapi/com/sun/star/media/XPlayerWindow.idl b/offapi/com/sun/star/media/XPlayerWindow.idl
new file mode 100644
index 000000000..4c0bb94c8
--- /dev/null
+++ b/offapi/com/sun/star/media/XPlayerWindow.idl
@@ -0,0 +1,55 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_media_XPlayerWindow_idl__
+#define __com_sun_star_media_XPlayerWindow_idl__
+
+#include <com/sun/star/awt/XWindow.idl>
+#include <com/sun/star/media/ZoomLevel.idl>
+
+module com { module sun { module star { module media {
+
+/** interacts with the media player window
+ */
+interface XPlayerWindow : ::com::sun::star::awt::XWindow
+{
+ /** redraws the player window
+ */
+ void update();
+
+ /** changes the zoom of the media played by the window.
+ */
+ boolean setZoomLevel( [in] ZoomLevel ZoomLevel );
+
+ /** gets the current media ratio.
+ */
+ ZoomLevel getZoomLevel();
+
+ /** changes the pointer for the player window.
+
+ @param SystemPointerType
+ a ::com::sun::star::awt::SystemPointer
+ */
+ void setPointerType( [in] long SystemPointerType );
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/media/ZoomLevel.idl b/offapi/com/sun/star/media/ZoomLevel.idl
new file mode 100644
index 000000000..cbf43dfc5
--- /dev/null
+++ b/offapi/com/sun/star/media/ZoomLevel.idl
@@ -0,0 +1,80 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_media_ZoomLevel_idl__
+#define __com_sun_star_media_ZoomLevel_idl__
+
+module com { module sun { module star { module media {
+
+
+enum ZoomLevel
+{
+ /** specifies that the video window itself is not available at all,
+ e.g. in cases of pure audio playback
+ */
+ NOT_AVAILABLE,
+
+
+ /** specifies that the video should be displayed with
+ its original size
+ */
+ ORIGINAL,
+
+
+ /** specifies that the video should be zoomed to window size
+ */
+ FIT_TO_WINDOW,
+
+
+ /** specifies that the video should be zoomed to window size
+ with using a fixed aspect ratio
+ */
+ FIT_TO_WINDOW_FIXED_ASPECT,
+
+
+ /** specifies that the video should be displayed in fullscreen mode,
+ if available
+ */
+ FULLSCREEN,
+
+
+ /** specifies that the video should be zoomed to a factor of 1:4
+ */
+ ZOOM_1_TO_4,
+
+
+ /** specifies that the video should be zoomed to a factor of 1:2
+ */
+ ZOOM_1_TO_2,
+
+
+ /** specifies that the video should be zoomed to a factor of 2:1
+ */
+ ZOOM_2_TO_1,
+
+
+ /** specifies that the video should be zoomed to a factor of 4:1
+ */
+ ZOOM_4_TO_1
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */