summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/media/XPlayer.idl
blob: 2d3dc234a0bc9e6da66a473eb61513ded6adbaaa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
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: */