BaseJpegDeocde exampe program

Dependencies:   BaseJpegDecode Terminal BaseUsbHost mbed mbed-rtos

Fork of BaseJpegDecode by Norimasa Okamoto

SimpleJpegDecode.h

Committer:
va009039
Date:
2012-10-30
Revision:
4:7d88de31c55a
Child:
5:033432f9baf3

File content as of revision 4:7d88de31c55a:

#ifndef SIMPLE_JPEG_DECODE_H
#define SIMPLE_JPEG_DECODE_H

#include "BaseJpegDecode.h"
#include "inverseDCT.h"

class SimpleJpegDecode : public BaseJpegDecode, public inverseDCT {
public:
    SimpleJpegDecode();
    void output(int mcu, int block, int scan, int value);
    virtual void outputDC(int mcu, int block, int value);
    virtual void outputAC(int mcu, int block, int scan, int value);
    virtual void outputMARK(uint8_t c);
    virtual void outputBLOCK(int muc, int block, uint8_t* values); // iDCT

    uint8_t* m_block_data[6];
    int DC_count;
    int AC_count;
    int BLOCK_count;

    ///Setups the result callback
    /**
     @param pMethod : callback function
     */
    void setOnResult( void (*pMethod)(int, int, uint8_t*) );
  
    ///Setups the result callback
    /**
    @param pItem : instance of class on which to execute the callback method
    @param pMethod : callback method
    */
    class CDummy;
    template<class T> 
    void setOnResult( T* pItem, void (T::*pMethod)(int, int, uint8_t*) )
    {
        m_pCb = NULL;
        m_pCbItem = (CDummy*) pItem;
        m_pCbMeth = (void (CDummy::*)(int, int, uint8_t*)) pMethod;
    }
    void clearOnResult();
protected:
    void onResult(int x, int y, uint8_t* yuv);
    CDummy* m_pCbItem;
    void (CDummy::*m_pCbMeth)(int, int, uint8_t*);
    void (*m_pCb)(int, int, uint8_t*);
};

#endif // SIMPLE_JPEG_DECODE_H