blob: f8873a93e1940eef439527940c907cfc52cc5a03 [file] [log] [blame]
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __com_sun_star_media_XPlayer_idl__
#define __com_sun_star_media_XPlayer_idl__
#ifndef __com_sun_star_awt_Size_idl__
#include <com/sun/star/awt/Size.idl>
#endif
#ifndef __com_sun_star_media_XPlayerWindow_idl__
#include <com/sun/star/media/XPlayerWindow.idl>
#endif
#ifndef __com_sun_star_media_XFrameGrabber_idl__
#include <com/sun/star/media/XFrameGrabber.idl>
#endif
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 the time at which to stop reading the stream.
@param fTime
the time at which to stop reading the stream in seconds
*/
void setStopTime( [in] double fTime );
/** gets the time at which the stream will stop. The result
is not guaranteed if no stop time has been set.
*/
double getStopTime();
/** sets the speed of the stream reading relatively to the normal
speed.
@param fRate
the stream reading rate. <code>1.0</code> means normal speed.
*/
void setRate( [in] double fRate );
/** gets the speed of the stream reading relatively to the normal
reading.
@returns
the relative speed. <code>1.0</code> is the normal speed.
*/
double getRate();
/** 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 <type scope="com::sun::star::awt">Size</type>
*/
::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