diff options
Diffstat (limited to 'offapi/com/sun/star/media')
-rw-r--r-- | offapi/com/sun/star/media/Manager.idl | 34 | ||||
-rw-r--r-- | offapi/com/sun/star/media/XFrameGrabber.idl | 43 | ||||
-rw-r--r-- | offapi/com/sun/star/media/XManager.idl | 43 | ||||
-rw-r--r-- | offapi/com/sun/star/media/XPlayer.idl | 142 | ||||
-rw-r--r-- | offapi/com/sun/star/media/XPlayerListener.idl | 38 | ||||
-rw-r--r-- | offapi/com/sun/star/media/XPlayerNotifier.idl | 46 | ||||
-rw-r--r-- | offapi/com/sun/star/media/XPlayerWindow.idl | 55 | ||||
-rw-r--r-- | offapi/com/sun/star/media/ZoomLevel.idl | 80 |
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: */ |