13fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang/* 23fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * Copyright 2018 The Android Open Source Project 33fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * 43fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * Licensed under the Apache License, Version 2.0 (the "License"); 53fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * you may not use this file except in compliance with the License. 63fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * You may obtain a copy of the License at 73fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * 83fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * http://www.apache.org/licenses/LICENSE-2.0 93fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * 103fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * Unless required by applicable law or agreed to in writing, software 113fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * distributed under the License is distributed on an "AS IS" BASIS, 123fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * See the License for the specific language governing permissions and 143fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang * limitations under the License. 153fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang */ 163fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang 173fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang#include "general_reject_packet.h" 183fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang 193fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwangnamespace bluetooth { 203fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwangnamespace avrcp { 213fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang 223fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwangstd::unique_ptr<GeneralRejectBuilder> GeneralRejectBuilder::MakeBuilder( 233fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang BrowsePdu pdu, Status reason) { 243fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang std::unique_ptr<GeneralRejectBuilder> builder = 253fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang std::unique_ptr<GeneralRejectBuilder>( 263fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang new GeneralRejectBuilder(pdu, reason)); 273fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang 283fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang return builder; 293fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang} 303fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang 313fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwangsize_t GeneralRejectBuilder::size() const { 323fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang return BrowsePacket::kMinSize() + 1; 333fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang} 343fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang 353fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwangbool GeneralRejectBuilder::Serialize( 363fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang const std::shared_ptr<::bluetooth::Packet>& pkt) { 373fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang ReserveSpace(pkt, size()); 383fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang 393fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang BrowsePacketBuilder::PushHeader(pkt, size() - BrowsePacket::kMinSize()); 403fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang 413fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang AddPayloadOctets1(pkt, static_cast<uint8_t>(reason_)); 423fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang 433fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang return true; 443fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang} 453fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang 463fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang} // namespace avrcp 473fbf8b4fff8b52b781fa611e0b62c97bca28d76ftedwang} // namespace bluetooth 48