139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber/* 239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * Copyright (C) 2010 The Android Open Source Project 339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * 439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * you may not use this file except in compliance with the License. 639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * You may obtain a copy of the License at 739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * 839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * 1039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * Unless required by applicable law or agreed to in writing, software 1139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 1239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * See the License for the specific language governing permissions and 1439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber * limitations under the License. 1539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber */ 1639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 1739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#ifndef A_AMR_ASSEMBLER_H_ 1839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 1939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#define A_AMR_ASSEMBLER_H_ 2039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#include "ARTPAssembler.h" 2239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#include <utils/List.h> 2439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#include <stdint.h> 2639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Hubernamespace android { 2839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 2939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberstruct AMessage; 3039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberstruct AString; 3139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 3239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberstruct AAMRAssembler : public ARTPAssembler { 3339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber AAMRAssembler( 3439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber const sp<AMessage> ¬ify, bool isWide, 3539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber const AString ¶ms); 3639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 3739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberprotected: 3839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber virtual ~AAMRAssembler(); 3939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 4039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber virtual AssemblyStatus assembleMore(const sp<ARTPSource> &source); 4139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber virtual void onByeReceived(); 4239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber virtual void packetLost(); 4339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 4439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huberprivate: 4539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber bool mIsWide; 4639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 4739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber sp<AMessage> mNotifyMsg; 4839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber bool mNextExpectedSeqNoValid; 4939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber uint32_t mNextExpectedSeqNo; 5039ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 5139ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber AssemblyStatus addPacket(const sp<ARTPSource> &source); 5239ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 5339ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber DISALLOW_EVIL_CONSTRUCTORS(AAMRAssembler); 5439ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber}; 5539ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 5639ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber} // namespace android 5739ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 5839ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber#endif // A_AMR_ASSEMBLER_H_ 5939ddf8e0f18766f7ba1e3246b774aa6ebd93eea8Andreas Huber 60