#ifndef __DEVICE_H__
#define __DEVICE_H__

#include "commoninclude.h"

Napi::Value napi_GetSupportedFeatures(const Napi::CallbackInfo& info);
Napi::Value napi_IsFeatureSupported(const Napi::CallbackInfo& info);

Napi::Value napi_IsRingSupported(const Napi::CallbackInfo& info);
Napi::Value napi_SetRing(const Napi::CallbackInfo& info);

Napi::Value napi_IsOffHookSupported(const Napi::CallbackInfo& info);
Napi::Value napi_SetOffHook(const Napi::CallbackInfo& info);

Napi::Value napi_IsMuteSupported(const Napi::CallbackInfo& info);
Napi::Value napi_SetMute(const Napi::CallbackInfo& info);

Napi::Value napi_IsHoldSupported(const Napi::CallbackInfo& info);
Napi::Value napi_SetHold(const Napi::CallbackInfo& info);

Napi::Value napi_IsOnlineSupported(const Napi::CallbackInfo& info);
Napi::Value napi_SetOnline(const Napi::CallbackInfo& info);

Napi::Value napi_IsYlHidStdHidSupported(const Napi::CallbackInfo& info);
Napi::Value napi_SetHidWorkingState(const Napi::CallbackInfo& info);
Napi::Value napi_GetHidWorkingState(const Napi::CallbackInfo& info);
Napi::Value napi_SetStdHidEventsFromYealinkDevices(const Napi::CallbackInfo& info);
Napi::Value napi_IsStdHidEventsFromYealinkDevices(const Napi::CallbackInfo& info);

// multi call control
Napi::Value napi_EnterDialCall(const Napi::CallbackInfo& objInfo);
Napi::Value napi_RingBackCall(const Napi::CallbackInfo& objInfo);
Napi::Value napi_IncomingCall(const Napi::CallbackInfo& objInfo);
Napi::Value napi_OutgoingCall(const Napi::CallbackInfo& objInfo);
Napi::Value napi_TerminateCall(const Napi::CallbackInfo& objInfo);
Napi::Value napi_AnswerCall(const Napi::CallbackInfo& objInfo);
Napi::Value napi_HoldCall(const Napi::CallbackInfo& objInfo);
Napi::Value napi_ResumeCall(const Napi::CallbackInfo& objInfo);
Napi::Value napi_MuteCall(const Napi::CallbackInfo& objInfo);
Napi::Value napi_UnmuteCall(const Napi::CallbackInfo& objInfo);
Napi::Value napi_UpdateContact(const Napi::CallbackInfo& objInfo);

Napi::Value napi_IsSetDateTimeSupported(const Napi::CallbackInfo& info);
Napi::Value napi_SetDateTime(const Napi::CallbackInfo& info);

Napi::Value napi_IsUploadRingtoneSupported(const Napi::CallbackInfo& info);
Napi::Value napi_UploadRingtone(const Napi::CallbackInfo& info);
Napi::Value napi_PlayRingtone(const Napi::CallbackInfo& info);

Napi::Value napi_IsBusylightSupported(const Napi::CallbackInfo& info);
Napi::Value napi_SetBusylightStatus(const Napi::CallbackInfo& info);
Napi::Value napi_GetBusylightStatus(const Napi::CallbackInfo& info);

Napi::Value napi_IsEqualizerSupported(const Napi::CallbackInfo& info);
Napi::Value napi_GetEqualizerMode(const Napi::CallbackInfo& info);
Napi::Value napi_SetEqualizerMode(const Napi::CallbackInfo& info);

Napi::Value napi_IsWizardModeSupported(const Napi::CallbackInfo& info);
Napi::Value napi_SetWizardMode(const Napi::CallbackInfo& info);
Napi::Value napi_GetWizardMode(const Napi::CallbackInfo& info);

Napi::Value napi_FactoryReset(const Napi::CallbackInfo& info);
Napi::Value napi_RebootDevice(const Napi::CallbackInfo& info);

Napi::Value napi_StartExportAudio(const Napi::CallbackInfo& info);
Napi::Value napi_StopExportAudio(const Napi::CallbackInfo& info);

Napi::Value napi_IsAudioModeSupported(const Napi::CallbackInfo& info);
Napi::Value napi_ChangeAudioMode(const Napi::CallbackInfo& info);

Napi::Value napi_HasDectInDocked(const Napi::CallbackInfo& info);
Napi::Value napi_GetRegionVersion(const Napi::CallbackInfo& info);

Napi::Value napi_SetCurrentTalkContact(const Napi::CallbackInfo& info);
Napi::Value napi_SetContactInfoList(const Napi::CallbackInfo& info);

Napi::Value napi_GetBatteryStatus(const Napi::CallbackInfo& info);
Napi::Value napi_GetDeviceImagePath(const Napi::CallbackInfo& info);
Napi::Value napi_ExportDevLog(const Napi::CallbackInfo& info);
Napi::Value napi_UploadDevLogToCloud(const Napi::CallbackInfo& info);
Napi::Value napi_GetESN(const Napi::CallbackInfo& info);

#endif // __DEVICE_H__
