189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project/*
289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * Copyright (C) 2010 The Android Open Source Project
389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project *
489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * you may not use this file except in compliance with the License.
689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * You may obtain a copy of the License at
789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project *
889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project *
1089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
1189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
1289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * See the License for the specific language governing permissions and
1489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * limitations under the License.
1589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project */
1689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
1789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#ifndef A_AMR_ASSEMBLER_H_
1889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
1989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#define A_AMR_ASSEMBLER_H_
2089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
2189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#include "ARTPAssembler.h"
2289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
2389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#include <utils/List.h>
2464760240f931714858a59c1579f07264d7182ba2Dima Zavin
257394a4f358fa9908a9f0a7c954b65c399f4268e6Dima Zavin#include <stdint.h>
26fce7a473248381cc83a01855f92581077d3c9ee2Dima Zavin
27db5cb14318bb24cd6ea14ff7ceea0d5e1f83d903Dima Zavinnamespace android {
28db5cb14318bb24cd6ea14ff7ceea0d5e1f83d903Dima Zavin
29db5cb14318bb24cd6ea14ff7ceea0d5e1f83d903Dima Zavinstruct AMessage;
3089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectstruct AString;
3189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
3289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectstruct AAMRAssembler : public ARTPAssembler {
33c2f1f07084818942352c6bbfb36af9b6b330eb4eEric Laurent    AAMRAssembler(
34c2f1f07084818942352c6bbfb36af9b6b330eb4eEric Laurent            const sp<AMessage> &notify, bool isWide,
35c2f1f07084818942352c6bbfb36af9b6b330eb4eEric Laurent            const AString &params);
3689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
3789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectprotected:
3889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    virtual ~AAMRAssembler();
3989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
4089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    virtual AssemblyStatus assembleMore(const sp<ARTPSource> &source);
4189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    virtual void onByeReceived();
4289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    virtual void packetLost();
4389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
4489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectprivate:
45c2f1f07084818942352c6bbfb36af9b6b330eb4eEric Laurent    bool mIsWide;
4689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
4789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    sp<AMessage> mNotifyMsg;
4889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    bool mNextExpectedSeqNoValid;
49c2f1f07084818942352c6bbfb36af9b6b330eb4eEric Laurent    uint32_t mNextExpectedSeqNo;
5089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
5189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    AssemblyStatus addPacket(const sp<ARTPSource> &source);
524bcae82f9b07d1a39956c45a6f5bec0b696c4dd1Glenn Kasten
53c2f1f07084818942352c6bbfb36af9b6b330eb4eEric Laurent    DISALLOW_EVIL_CONSTRUCTORS(AAMRAssembler);
54c2f1f07084818942352c6bbfb36af9b6b330eb4eEric Laurent};
5589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
5689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project}  // namespace android
57c2f1f07084818942352c6bbfb36af9b6b330eb4eEric Laurent
5872ef00de10fa95bfcb948ed88ab9b7a177ed0b48Glenn Kasten#endif  // A_AMR_ASSEMBLER_H_
5972ef00de10fa95bfcb948ed88ab9b7a177ed0b48Glenn Kasten
6072ef00de10fa95bfcb948ed88ab9b7a177ed0b48Glenn Kasten