LCOV - code coverage report
Current view: top level - media/server/ipc/include - MediaPipelineModuleService.h (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 2 2
Test Date: 2025-02-18 13:13:53 Functions: 100.0 % 2 2

            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 2022 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_IPC_MEDIA_PIPELINE_MODULE_SERVICE_H_
      21              : #define FIREBOLT_RIALTO_SERVER_IPC_MEDIA_PIPELINE_MODULE_SERVICE_H_
      22              : 
      23              : #include "IMediaPipelineClient.h"
      24              : #include "IMediaPipelineModuleService.h"
      25              : #include "IMediaPipelineService.h"
      26              : #include <map>
      27              : #include <memory>
      28              : #include <set>
      29              : 
      30              : namespace firebolt::rialto::server::ipc
      31              : {
      32              : class MediaPipelineModuleServiceFactory : public IMediaPipelineModuleServiceFactory
      33              : {
      34              : public:
      35            1 :     MediaPipelineModuleServiceFactory() = default;
      36            1 :     virtual ~MediaPipelineModuleServiceFactory() = default;
      37              : 
      38              :     std::shared_ptr<IMediaPipelineModuleService> create(service::IMediaPipelineService &mediaPipelineService) const override;
      39              : };
      40              : 
      41              : class MediaPipelineModuleService : public IMediaPipelineModuleService
      42              : {
      43              : public:
      44              :     explicit MediaPipelineModuleService(service::IMediaPipelineService &mediaPipelineService);
      45              :     ~MediaPipelineModuleService() override;
      46              : 
      47              :     void clientConnected(const std::shared_ptr<::firebolt::rialto::ipc::IClient> &ipcClient) override;
      48              :     void clientDisconnected(const std::shared_ptr<::firebolt::rialto::ipc::IClient> &ipcClient) override;
      49              : 
      50              :     void createSession(::google::protobuf::RpcController *controller,
      51              :                        const ::firebolt::rialto::CreateSessionRequest *request,
      52              :                        ::firebolt::rialto::CreateSessionResponse *response, ::google::protobuf::Closure *done) override;
      53              :     void destroySession(::google::protobuf::RpcController *controller,
      54              :                         const ::firebolt::rialto::DestroySessionRequest *request,
      55              :                         ::firebolt::rialto::DestroySessionResponse *response, ::google::protobuf::Closure *done) override;
      56              :     void load(::google::protobuf::RpcController *controller, const ::firebolt::rialto::LoadRequest *request,
      57              :               ::firebolt::rialto::LoadResponse *response, ::google::protobuf::Closure *done) override;
      58              :     void setVideoWindow(::google::protobuf::RpcController *controller,
      59              :                         const ::firebolt::rialto::SetVideoWindowRequest *request,
      60              :                         ::firebolt::rialto::SetVideoWindowResponse *response, ::google::protobuf::Closure *done) override;
      61              :     void attachSource(::google::protobuf::RpcController *controller,
      62              :                       const ::firebolt::rialto::AttachSourceRequest *request,
      63              :                       ::firebolt::rialto::AttachSourceResponse *response, ::google::protobuf::Closure *done) override;
      64              :     void removeSource(::google::protobuf::RpcController *controller,
      65              :                       const ::firebolt::rialto::RemoveSourceRequest *request,
      66              :                       ::firebolt::rialto::RemoveSourceResponse *response, ::google::protobuf::Closure *done) override;
      67              :     void allSourcesAttached(::google::protobuf::RpcController *controller,
      68              :                             const ::firebolt::rialto::AllSourcesAttachedRequest *request,
      69              :                             ::firebolt::rialto::AllSourcesAttachedResponse *response,
      70              :                             ::google::protobuf::Closure *done) override;
      71              :     void play(::google::protobuf::RpcController *controller, const ::firebolt::rialto::PlayRequest *request,
      72              :               ::firebolt::rialto::PlayResponse *response, ::google::protobuf::Closure *done) override;
      73              :     void pause(::google::protobuf::RpcController *controller, const ::firebolt::rialto::PauseRequest *request,
      74              :                ::firebolt::rialto::PauseResponse *response, ::google::protobuf::Closure *done) override;
      75              :     void stop(::google::protobuf::RpcController *controller, const ::firebolt::rialto::StopRequest *request,
      76              :               ::firebolt::rialto::StopResponse *response, ::google::protobuf::Closure *done) override;
      77              :     void setPosition(::google::protobuf::RpcController *controller, const ::firebolt::rialto::SetPositionRequest *request,
      78              :                      ::firebolt::rialto::SetPositionResponse *response, ::google::protobuf::Closure *done) override;
      79              :     void haveData(::google::protobuf::RpcController *controller, const ::firebolt::rialto::HaveDataRequest *request,
      80              :                   ::firebolt::rialto::HaveDataResponse *response, ::google::protobuf::Closure *done) override;
      81              :     void setPlaybackRate(::google::protobuf::RpcController *controller,
      82              :                          const ::firebolt::rialto::SetPlaybackRateRequest *request,
      83              :                          ::firebolt::rialto::SetPlaybackRateResponse *response,
      84              :                          ::google::protobuf::Closure *done) override;
      85              :     void getPosition(::google::protobuf::RpcController *controller, const ::firebolt::rialto::GetPositionRequest *request,
      86              :                      ::firebolt::rialto::GetPositionResponse *response, ::google::protobuf::Closure *done) override;
      87              :     void setImmediateOutput(::google::protobuf::RpcController *controller,
      88              :                             const ::firebolt::rialto::SetImmediateOutputRequest *request,
      89              :                             ::firebolt::rialto::SetImmediateOutputResponse *response,
      90              :                             ::google::protobuf::Closure *done) override;
      91              :     void getImmediateOutput(::google::protobuf::RpcController *controller,
      92              :                             const ::firebolt::rialto::GetImmediateOutputRequest *request,
      93              :                             ::firebolt::rialto::GetImmediateOutputResponse *response,
      94              :                             ::google::protobuf::Closure *done) override;
      95              :     void getStats(::google::protobuf::RpcController *controller, const ::firebolt::rialto::GetStatsRequest *request,
      96              :                   ::firebolt::rialto::GetStatsResponse *response, ::google::protobuf::Closure *done) override;
      97              :     void renderFrame(::google::protobuf::RpcController *controller, const ::firebolt::rialto::RenderFrameRequest *request,
      98              :                      ::firebolt::rialto::RenderFrameResponse *response, ::google::protobuf::Closure *done) override;
      99              :     void setVolume(::google::protobuf::RpcController *controller, const ::firebolt::rialto::SetVolumeRequest *request,
     100              :                    ::firebolt::rialto::SetVolumeResponse *response, ::google::protobuf::Closure *done) override;
     101              :     void getVolume(::google::protobuf::RpcController *controller, const ::firebolt::rialto::GetVolumeRequest *request,
     102              :                    ::firebolt::rialto::GetVolumeResponse *response, ::google::protobuf::Closure *done) override;
     103              :     void setMute(::google::protobuf::RpcController *controller, const ::firebolt::rialto::SetMuteRequest *request,
     104              :                  ::firebolt::rialto::SetMuteResponse *response, ::google::protobuf::Closure *done) override;
     105              :     void getMute(::google::protobuf::RpcController *controller, const ::firebolt::rialto::GetMuteRequest *request,
     106              :                  ::firebolt::rialto::GetMuteResponse *response, ::google::protobuf::Closure *done) override;
     107              :     void setTextTrackIdentifier(::google::protobuf::RpcController *controller,
     108              :                                 const ::firebolt::rialto::SetTextTrackIdentifierRequest *request,
     109              :                                 ::firebolt::rialto::SetTextTrackIdentifierResponse *response,
     110              :                                 ::google::protobuf::Closure *done) override;
     111              :     void getTextTrackIdentifier(::google::protobuf::RpcController *controller,
     112              :                                 const ::firebolt::rialto::GetTextTrackIdentifierRequest *request,
     113              :                                 ::firebolt::rialto::GetTextTrackIdentifierResponse *response,
     114              :                                 ::google::protobuf::Closure *done) override;
     115              :     void setLowLatency(::google::protobuf::RpcController *controller,
     116              :                        const ::firebolt::rialto::SetLowLatencyRequest *request,
     117              :                        ::firebolt::rialto::SetLowLatencyResponse *response, ::google::protobuf::Closure *done) override;
     118              :     void setSync(::google::protobuf::RpcController *controller, const ::firebolt::rialto::SetSyncRequest *request,
     119              :                  ::firebolt::rialto::SetSyncResponse *response, ::google::protobuf::Closure *done) override;
     120              :     void getSync(::google::protobuf::RpcController *controller, const ::firebolt::rialto::GetSyncRequest *request,
     121              :                  ::firebolt::rialto::GetSyncResponse *response, ::google::protobuf::Closure *done) override;
     122              :     void setSyncOff(::google::protobuf::RpcController *controller, const ::firebolt::rialto::SetSyncOffRequest *request,
     123              :                     ::firebolt::rialto::SetSyncOffResponse *response, ::google::protobuf::Closure *done) override;
     124              :     void setStreamSyncMode(::google::protobuf::RpcController *controller,
     125              :                            const ::firebolt::rialto::SetStreamSyncModeRequest *request,
     126              :                            ::firebolt::rialto::SetStreamSyncModeResponse *response,
     127              :                            ::google::protobuf::Closure *done) override;
     128              :     void getStreamSyncMode(::google::protobuf::RpcController *controller,
     129              :                            const ::firebolt::rialto::GetStreamSyncModeRequest *request,
     130              :                            ::firebolt::rialto::GetStreamSyncModeResponse *response,
     131              :                            ::google::protobuf::Closure *done) override;
     132              :     void flush(::google::protobuf::RpcController *controller, const ::firebolt::rialto::FlushRequest *request,
     133              :                ::firebolt::rialto::FlushResponse *response, ::google::protobuf::Closure *done) override;
     134              :     void setSourcePosition(::google::protobuf::RpcController *controller,
     135              :                            const ::firebolt::rialto::SetSourcePositionRequest *request,
     136              :                            ::firebolt::rialto::SetSourcePositionResponse *response,
     137              :                            ::google::protobuf::Closure *done) override;
     138              :     void processAudioGap(::google::protobuf::RpcController *controller,
     139              :                          const ::firebolt::rialto::ProcessAudioGapRequest *request,
     140              :                          ::firebolt::rialto::ProcessAudioGapResponse *response,
     141              :                          ::google::protobuf::Closure *done) override;
     142              :     void setBufferingLimit(::google::protobuf::RpcController *controller,
     143              :                            const ::firebolt::rialto::SetBufferingLimitRequest *request,
     144              :                            ::firebolt::rialto::SetBufferingLimitResponse *response,
     145              :                            ::google::protobuf::Closure *done) override;
     146              :     void getBufferingLimit(::google::protobuf::RpcController *controller,
     147              :                            const ::firebolt::rialto::GetBufferingLimitRequest *request,
     148              :                            ::firebolt::rialto::GetBufferingLimitResponse *response,
     149              :                            ::google::protobuf::Closure *done) override;
     150              :     void setUseBuffering(::google::protobuf::RpcController *controller,
     151              :                          const ::firebolt::rialto::SetUseBufferingRequest *request,
     152              :                          ::firebolt::rialto::SetUseBufferingResponse *response,
     153              :                          ::google::protobuf::Closure *done) override;
     154              :     void getUseBuffering(::google::protobuf::RpcController *controller,
     155              :                          const ::firebolt::rialto::GetUseBufferingRequest *request,
     156              :                          ::firebolt::rialto::GetUseBufferingResponse *response,
     157              :                          ::google::protobuf::Closure *done) override;
     158              : 
     159              : private:
     160              :     service::IMediaPipelineService &m_mediaPipelineService;
     161              :     std::map<std::shared_ptr<::firebolt::rialto::ipc::IClient>, std::set<int>> m_clientSessions;
     162              : };
     163              : } // namespace firebolt::rialto::server::ipc
     164              : 
     165              : #endif // FIREBOLT_RIALTO_SERVER_IPC_MEDIA_PIPELINE_MODULE_SERVICE_H_
        

Generated by: LCOV version 2.0-1