/* -*- 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 .
*/
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 0
or to its previous value.
@param bSet
sets the volume to 0
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 0
or not.
@returns
`TRUE` if the volume is temporarily set to 0
,
`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();
};
}; }; }; };
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */