Line data Source code
1 : /*
2 : * If not stated otherwise in this file or this component's LICENSE file the
3 : * following copyright and licenses apply:
4 : *
5 : * Copyright 2023 Sky UK
6 : *
7 : * Licensed under the Apache License, Version 2.0 (the "License");
8 : * you may not use this file except in compliance with the License.
9 : * You may obtain a copy of the License at
10 : *
11 : * http://www.apache.org/licenses/LICENSE-2.0
12 : *
13 : * Unless required by applicable law or agreed to in writing, software
14 : * distributed under the License is distributed on an "AS IS" BASIS,
15 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 : * See the License for the specific language governing permissions and
17 : * limitations under the License.
18 : */
19 :
20 : #ifndef FIREBOLT_RIALTO_SERVER_I_GST_WEB_AUDIO_PLAYER_CLIENT_H_
21 : #define FIREBOLT_RIALTO_SERVER_I_GST_WEB_AUDIO_PLAYER_CLIENT_H_
22 :
23 : #include <MediaCommon.h>
24 : #include <stdint.h>
25 :
26 : /**
27 : * @file IGstWebAudioPlayerClient.h
28 : *
29 : * The definition of the IGstWebAudioPlayerClient interface.
30 : *
31 : * This file comprises the definition of the IGstWebAudioPlayerClient abstract
32 : * class. This is the API by which a IGstWebAudioPlayer implementation will
33 : * pass notifications to its client.
34 : */
35 :
36 : namespace firebolt::rialto::server
37 : {
38 : /**
39 : * @brief The Rialto gstreamer player client interface.
40 : *
41 : * This is The Rialto gstreamer player client abstract base class. It should be
42 : * implemented by any object that wishes to be notified by changes in the
43 : * state of the gstreamer player or that provides data for playback.
44 : */
45 : class IGstWebAudioPlayerClient
46 : {
47 : public:
48 116 : IGstWebAudioPlayerClient() = default;
49 116 : virtual ~IGstWebAudioPlayerClient() = default;
50 :
51 : IGstWebAudioPlayerClient(const IGstWebAudioPlayerClient &) = delete;
52 : IGstWebAudioPlayerClient &operator=(const IGstWebAudioPlayerClient &) = delete;
53 : IGstWebAudioPlayerClient(IGstWebAudioPlayerClient &&) = delete;
54 : IGstWebAudioPlayerClient &operator=(IGstWebAudioPlayerClient &&) = delete;
55 :
56 : /**
57 : * @brief Notifies the client of the web audio state.
58 : *
59 : * The player will start IDLE. Once play() has been called the player
60 : * will be PLAYING, or once pause() has been called the player will be
61 : * PAUSED. Once the stream has reached end of the media EOS wibe notified.
62 : *
63 : * @param[in] state : The new web audio state.
64 : */
65 : virtual void notifyState(WebAudioPlayerState state) = 0;
66 : };
67 :
68 : }; // namespace firebolt::rialto::server
69 :
70 : #endif // FIREBOLT_RIALTO_SERVER_I_GST_WEB_AUDIO_PLAYER_CLIENT_H_
|