#ifndef __MSTAR__LAYER_H__
#define __MTSAR__LAYER_H__

#include "mstar_types.h"

#define MSTAR_LAYER_SUPPORTED_OPTIONS  (DLOP_ALPHACHANNEL | DLOP_OPACITY | DLOP_SRC_COLORKEY)

extern DisplayLayerFuncs mstarLayerFuncs;


typedef enum{
    CLC_ADD_REGION,
    CLC_TEST_REGION,
    CLC_SET_REGION,
    CLC_REMOVE_REGION,
    CLC_SET_LAYERLEVEL,
    CLC_SET_COLORADJUSTMENT,
    CLC_FORCEWRITE_ENABLE,
    CLC_FORCEWRITE_DISABLE,
    CLC_CONFIG_DISPLAYMODE,
    CLC_SET_MIRRORMODE,
    CLC_SET_LBCOUPLEMODE,
    CLC_SET_GOPBYPASSMODE,
    CLC_SET_GOPSCALE,
    CLC_SET_GOPDST,
    CLC_SET_GOPBLOGO

}CoreLayerCommand;

typedef struct {
     CoreLayerCommand               type;

} CoreLayerEvent;

typedef struct{
    MSTARRegionData *reg_data;           //shared
    CoreSurface                *surface;      //shared
    CoreSurfaceBufferLock      *lock;       //shared
    CoreLayerRegionConfig config;
    CoreLayerRegionConfigFlags  flags;
    DFBRegion            update;
    int                     level;          //layer level
    DFBColorAdjustment  coloradjustment;
    DFBDisplayLayerDeskTopDisplayMode display_mode;
    bool HMirrorEnable;
    bool VMirrorEnable;
    bool LBCoupleEnable;
    bool ByPassEnable;
    int  HScale;
    int  VScale;
    EN_GOP_DST_TYPE GopDst;
    int miusel;
}CoreLayerCallParameter;

FusionCallHandlerResult
mstar_layer_funcs_call_handler( int           caller,   /* fusion id of the caller */
                           int           call_arg, /* optional call parameter */
                           void         *call_ptr, /* optional call parameter */
                           void         *ctx,      /* optional handler context */
                           unsigned int  serial,
                           int          *ret_val );
#endif

