• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef OHOS_OHAVSESSION_CALLBACKIMPL_H
17 #define OHOS_OHAVSESSION_CALLBACKIMPL_H
18 
19 #include "native_avmetadata.h"
20 #include "native_avsession.h"
21 #include "avsession_info.h"
22 
23 namespace OHOS::AVSession {
24 
25 class OHAVSessionCallbackImpl : public AVSessionCallback {
26 public:
27     ~OHAVSessionCallbackImpl() override;
28     void OnPlay() override;
29     void OnPause() override;
30     void OnStop() override;
31     void OnPlayNext() override;
32     void OnPlayPrevious() override;
33     void OnFastForward(int64_t time) override;
34     void OnRewind(int64_t time) override;
35     void OnSeek(int64_t time) override;
OnSetSpeed(double speed)36     void OnSetSpeed(double speed) override {};
37     void OnSetLoopMode(int32_t loopMode) override;
38     void OnToggleFavorite(const std::string& mediaId) override;
OnMediaKeyEvent(const OHOS::MMI::KeyEvent & keyEvent)39     void OnMediaKeyEvent(const OHOS::MMI::KeyEvent& keyEvent) override {};
OnOutputDeviceChange(const int32_t connectionState,const OHOS::AVSession::OutputDeviceInfo & outputDeviceInfo)40     void OnOutputDeviceChange(const int32_t connectionState,
41     const OHOS::AVSession::OutputDeviceInfo& outputDeviceInfo) override {};
OnCommonCommand(const std::string & commonCommand,const OHOS::AAFwk::WantParams & commandArgs)42     void OnCommonCommand(const std::string& commonCommand, const OHOS::AAFwk::WantParams& commandArgs) override {};
OnSkipToQueueItem(int32_t itemId)43     void OnSkipToQueueItem(int32_t itemId) override {};
OnAVCallAnswer()44     void OnAVCallAnswer() override {};
OnAVCallHangUp()45     void OnAVCallHangUp() override {};
OnAVCallToggleCallMute()46     void OnAVCallToggleCallMute() override {};
OnPlayFromAssetId(int64_t assetId)47     void OnPlayFromAssetId(int64_t assetId) override {};
OnCastDisplayChange(const CastDisplayInfo & castDisplayInfo)48     void OnCastDisplayChange(const CastDisplayInfo& castDisplayInfo) override {};
OnCastDisplaySizeChange(const CastDisplayInfo & castDisplayInfo)49     void OnCastDisplaySizeChange(const CastDisplayInfo& castDisplayInfo) override {};
50 
51     AVSession_ErrCode SetPlayCallback(OH_AVSession* avsession, AVSession_ControlCommand command,
52         OH_AVSessionCallback_OnCommand callback, void* userData);
53     AVSession_ErrCode SetPauseCallback(OH_AVSession* avsession, AVSession_ControlCommand command,
54         OH_AVSessionCallback_OnCommand callback, void* userData);
55     AVSession_ErrCode SetStopCallback(OH_AVSession* avsession, AVSession_ControlCommand command,
56         OH_AVSessionCallback_OnCommand callback, void* userData);
57     AVSession_ErrCode SetPlayNextCallback(OH_AVSession* avsession, AVSession_ControlCommand command,
58         OH_AVSessionCallback_OnCommand callback, void* userData);
59     AVSession_ErrCode SetPlayPreviousCallback(OH_AVSession* avsession, AVSession_ControlCommand command,
60         OH_AVSessionCallback_OnCommand callback, void* userData);
61     AVSession_ErrCode UnSetPlayCallback(OH_AVSession* avsession, AVSession_ControlCommand command,
62         OH_AVSessionCallback_OnCommand callback);
63     AVSession_ErrCode UnSetPauseCallback(OH_AVSession* avsession, AVSession_ControlCommand command,
64         OH_AVSessionCallback_OnCommand callback);
65     AVSession_ErrCode UnSetStopCallback(OH_AVSession* avsession, AVSession_ControlCommand command,
66         OH_AVSessionCallback_OnCommand callback);
67     AVSession_ErrCode UnSetPlayNextCallback(OH_AVSession* avsession, AVSession_ControlCommand command,
68         OH_AVSessionCallback_OnCommand callback);
69     AVSession_ErrCode UnSetPlayPreviousCallback(OH_AVSession* avsession, AVSession_ControlCommand command,
70         OH_AVSessionCallback_OnCommand callback);
71 
72     AVSession_ErrCode RegisterForwardCallback(OH_AVSession* avsession,
73         OH_AVSessionCallback_OnFastForward callback, void* userData);
74     AVSession_ErrCode UnregisterForwardCallback(OH_AVSession* avsession,
75         OH_AVSessionCallback_OnFastForward callback);
76     AVSession_ErrCode RegisterRewindCallback(OH_AVSession* avsession,
77         OH_AVSessionCallback_OnRewind callback, void* userData);
78     AVSession_ErrCode UnregisterRewindCallback(OH_AVSession* avsession,
79         OH_AVSessionCallback_OnRewind callback);
80     AVSession_ErrCode RegisterSeekCallback(OH_AVSession* avsession,
81     OH_AVSessionCallback_OnSeek callback, void* userData);
82         AVSession_ErrCode UnregisterSeekCallback(OH_AVSession* avsession,
83     OH_AVSessionCallback_OnSeek callback);
84     AVSession_ErrCode RegisterSetLoopModeCallback(OH_AVSession* avsession,
85         OH_AVSessionCallback_OnSetLoopMode callback, void* userData);
86     AVSession_ErrCode UnregisterSetLoopModeCallback(OH_AVSession* avsession,
87         OH_AVSessionCallback_OnSetLoopMode callback);
88     AVSession_ErrCode RegisterToggleFavoriteCallback(OH_AVSession* session,
89         OH_AVSessionCallback_OnToggleFavorite callback, void* userData);
90     AVSession_ErrCode UnregisterToggleFavoriteCallback(OH_AVSession* session,
91         OH_AVSessionCallback_OnToggleFavorite callback);
92 
93 private:
94     OH_AVSession* avsession_ = {nullptr};
95     std::vector<std::pair<OH_AVSessionCallback_OnCommand, void*>> playCallbacks_;
96     std::vector<std::pair<OH_AVSessionCallback_OnCommand, void*>> pauseCallbacks_;
97     std::vector<std::pair<OH_AVSessionCallback_OnCommand, void*>> stopCallbacks_;
98     std::vector<std::pair<OH_AVSessionCallback_OnCommand, void*>> playNextCallbacks_;
99     std::vector<std::pair<OH_AVSessionCallback_OnCommand, void*>> playPreviousCallbacks_;
100     std::vector<std::pair<OH_AVSessionCallback_OnFastForward, void*>> forwardCallbacks_;
101     std::vector<std::pair<OH_AVSessionCallback_OnRewind, void*>> rewindCallbacks_;
102     std::vector<std::pair<OH_AVSessionCallback_OnSeek, void*>> seekCallbacks_;
103     std::vector<std::pair<OH_AVSessionCallback_OnSetLoopMode, void*>> setLoopModeCallbacks_;
104     std::vector<std::pair<OH_AVSessionCallback_OnToggleFavorite, void*>> toggleFavoriteCallbacks_;
105 };
106 }
107 #endif // OHOS_OHAVSESSION_CALLBACKIMPL_H