//
//  NativePlugin.h
//  PROJECT_NAME
//
//  Created by AUTHOR on YYYY/MM/DD.
//

#ifndef NativePlugin_h
#define NativePlugin_h

#include "RVL.h"
#include "TemporalRVL.h"

extern "C"
{
    int EncodeRVL(short* input, char* output, int numPixels);
    void DecodeRVL(char* input, short* output, int numPixels);
    TemporalRVL::TemporalRVLEncoder* CreateTemporalRVLEncoder(int frameSize, short changeThreshold, int invalidThreshold);
    TemporalRVL::TemporalRVLDecoder* CreateTemporalRVLDecoder(int frameSize);
    void DeleteTemporalRVLEncoder(TemporalRVL::TemporalRVLEncoder* encoder);
    void DeleteTemporalRVLDecoder(TemporalRVL::TemporalRVLDecoder* decoder);
    int EncodeTemporalRVL(TemporalRVL::TemporalRVLEncoder* encoder, short* depthBuffer, char* output, bool keyFrame);
    void DecodeTemporalRVL(TemporalRVL::TemporalRVLDecoder* decoder, char* trvlFrame, short* output, bool keyFrame);
}

#endif /* NativePlugin_h */
