#ifndef _BRIDLE_OEMSVC_H_
#define _BRIDLE_OEMSVC_H_

#include "OEMSVC.h"
#include "AEEBridle.h"

extern int bridle_oemsvc_RegisterSubSystem(void *po);

enum {
   BRIDLE_SUBSYS_HANDLER_IDX(oemsvc,OEM_SVCSimpleBeep),
   BRIDLE_SUBSYS_HANDLER_IDX(oemsvc,OEM_SVCGetConfig),
   BRIDLE_SUBSYS_HANDLER_IDX(oemsvc,OEM_SVCSetConfig),
   BRIDLE_SUBSYS_HANDLER_IDX(oemsvc,OEM_SVCIsVocCapable),
   BRIDLE_SUBSYS_HANDLER_IDX(oemsvc,OEM_SVCdisp_get_info),
   BRIDLE_oemsvc_COUNT
};

extern uint32 BRIDLE_SUBSYS_NO(oemsvc);

BRIDLE_SUBSYS_2_RET(oemsvc, boolean, OEM_SVCSimpleBeep,
                    BeepType, BRIDLE_CHECK_NONE, 0,
                    boolean, BRIDLE_CHECK_NONE, 0)

BRIDLE_SUBSYS_3_RET(oemsvc, int, OEM_SVCGetConfig,
                    AEEConfigItem, BRIDLE_CHECK_NONE, 0,
                    void *, BRIDLE_CHECK_WRITEACCESS, UNPACKBRIDLE_PARAM_3,
                    int, BRIDLE_CHECK_NONE, 0)

BRIDLE_SUBSYS_3_RET(oemsvc, int, OEM_SVCSetConfig,
                    AEEConfigItem, BRIDLE_CHECK_NONE, 0,
                    void *, BRIDLE_CHECK_WRITEACCESS, UNPACKBRIDLE_PARAM_3,
                    int, BRIDLE_CHECK_NONE, 0)

BRIDLE_SUBSYS_1_RET(oemsvc, boolean, OEM_SVCIsVocCapable,
                    BeepType, BRIDLE_CHECK_NONE, 0)

BRIDLE_SUBSYS_1_RET(oemsvc, int, OEM_SVCdisp_get_info,
                    disp_info_type *, BRIDLE_CHECK_WRITEACCESS, sizeof(disp_info_type))

#endif // _BRIDLE_OEMSVC_H_
