1049e185fSopenharmony_ci/*
2049e185fSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
3049e185fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4049e185fSopenharmony_ci * you may not use this file except in compliance with the License.
5049e185fSopenharmony_ci * You may obtain a copy of the License at
6049e185fSopenharmony_ci *
7049e185fSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8049e185fSopenharmony_ci *
9049e185fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10049e185fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11049e185fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12049e185fSopenharmony_ci * See the License for the specific language governing permissions and
13049e185fSopenharmony_ci * limitations under the License.
14049e185fSopenharmony_ci */
15049e185fSopenharmony_ci
16049e185fSopenharmony_ci#include "stub_common.h"
17049e185fSopenharmony_ci#include <iostream>
18049e185fSopenharmony_ci
19049e185fSopenharmony_cinamespace OHOS {
20049e185fSopenharmony_cinamespace Media {
21049e185fSopenharmony_cisptr<IRemoteObject> MediaServiceProxyFuzzer::GetSubSystemAbility(IStandardMediaService::MediaSystemAbility subSystemId,
22049e185fSopenharmony_ci    const sptr<IRemoteObject> &listener)
23049e185fSopenharmony_ci{
24049e185fSopenharmony_ci    MessageParcel data;
25049e185fSopenharmony_ci    MessageParcel reply;
26049e185fSopenharmony_ci    MessageOption option;
27049e185fSopenharmony_ci
28049e185fSopenharmony_ci    bool token = data.WriteInterfaceToken(MediaServiceProxyFuzzer::GetDescriptor());
29049e185fSopenharmony_ci    if (!token) {
30049e185fSopenharmony_ci        std::cout << "Failed to write descriptor!" << std::endl;
31049e185fSopenharmony_ci        return nullptr;
32049e185fSopenharmony_ci    }
33049e185fSopenharmony_ci    (void)data.WriteInt32(static_cast<int32_t>(subSystemId));
34049e185fSopenharmony_ci    (void)data.WriteRemoteObject(listener);
35049e185fSopenharmony_ci    if (Remote()->SendRequest(MediaServiceMsg::GET_SUBSYSTEM, data, reply, option) != 0) {
36049e185fSopenharmony_ci        std::cout << "Failed to SendRequest" << std::endl;
37049e185fSopenharmony_ci        return nullptr;
38049e185fSopenharmony_ci    }
39049e185fSopenharmony_ci    return reply.ReadRemoteObject();
40049e185fSopenharmony_ci}
41049e185fSopenharmony_ci}
42049e185fSopenharmony_ci}