/* Declarations for packet object  */
/* IVB, 5/14/2001 */

#ifndef _PACKET_

/* --------------------------------------------------------------- */
#define _PACKET_

#include "entropy.h"


class PacketEnc {
public:
    PacketEnc (MultiLayerCoder *entropyLL, MultiLayerCoder *entropyHF);
    ~PacketEnc ();
    
    Real writeLLsymbol (Encoder *encoder, int symbol, int layer, int context);
    Real writeHFsymbol (Encoder *encoder, int symbol, int layer, int context);

    //data
    Real rate, temp;
    MultiLayerCoder *entropyLL;
    MultiLayerCoder *entropyHF;
    
};

class PacketDec {
public:
    PacketDec (MultiLayerCoder *entropyLL, MultiLayerCoder *entropyHF);
    ~PacketDec ();
    
    int readLLsymbol (Decoder *decoder, int layer, int context);
    int readHFsymbol (Decoder *decoder, int layer, int context);
    
    MultiLayerCoder *entropyLL; 
    MultiLayerCoder *entropyHF;
    
};

/* --------------------------------------------------------------- */
#endif
