157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber/*
257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * Copyright (C) 2010 The Android Open Source Project
357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber *
457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * you may not use this file except in compliance with the License.
657648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * You may obtain a copy of the License at
757648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber *
857648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
957648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber *
1057648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * Unless required by applicable law or agreed to in writing, software
1157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
1257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * See the License for the specific language governing permissions and
1457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber * limitations under the License.
1557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber */
1657648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
1757648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#ifndef A_AMR_ASSEMBLER_H_
1857648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
1957648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#define A_AMR_ASSEMBLER_H_
2057648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
2157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#include "ARTPAssembler.h"
2257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
2357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#include <utils/List.h>
2457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
2557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#include <stdint.h>
2657648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
2757648e4eec7dd2593af467877bc7cce4aa654759Andreas Hubernamespace android {
2857648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
2957648e4eec7dd2593af467877bc7cce4aa654759Andreas Huberstruct AMessage;
3057648e4eec7dd2593af467877bc7cce4aa654759Andreas Huberstruct AString;
3157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
3257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huberstruct AAMRAssembler : public ARTPAssembler {
3357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber    AAMRAssembler(
3457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber            const sp<AMessage> &notify, bool isWide,
3557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber            const AString &params);
3657648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
3757648e4eec7dd2593af467877bc7cce4aa654759Andreas Huberprotected:
3857648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber    virtual ~AAMRAssembler();
3957648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
4057648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber    virtual AssemblyStatus assembleMore(const sp<ARTPSource> &source);
4157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber    virtual void onByeReceived();
4257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber    virtual void packetLost();
4357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
4457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huberprivate:
4557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber    bool mIsWide;
4657648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
4757648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber    sp<AMessage> mNotifyMsg;
4857648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber    bool mNextExpectedSeqNoValid;
4957648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber    uint32_t mNextExpectedSeqNo;
5057648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
5157648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber    AssemblyStatus addPacket(const sp<ARTPSource> &source);
5257648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
5357648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber    DISALLOW_EVIL_CONSTRUCTORS(AAMRAssembler);
5457648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber};
5557648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
5657648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber}  // namespace android
5757648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
5857648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber#endif  // A_AMR_ASSEMBLER_H_
5957648e4eec7dd2593af467877bc7cce4aa654759Andreas Huber
60