#ifndef daclient_event_types_h
#define daclient_event_types_h

#define EVENT_IMAGE "image"
#define EVENT_GYRO "gyro"
#define EVENT_ACCEL "accel"
#define EVENT_MAGNET "magnet"
#define EVENT_ACCEL_WITH_GRAVITY "accel_with_gravity"
#define EVENT_SENSOR "sensor"

#define ATTR_FORMAT "format"
#define ATTR_FORMAT_BGRA "bgra"
#define ATTR_FORMAT_RGBA "rgba"
#define ATTR_FORMAT_NV21 "nv21"
#define ATTR_FORMAT_NV12 "nv12"
#define ATTR_FORMAT_I420 "i420"
#define ATTR_WIDTH "width"
#define ATTR_HEIGHT "height"
#define ATTR_ROTATION "rotation"
#define ATTR_DEPTH_IMAGE_ROTATION "depth_image_rotation"
#define ATTR_IMAGE "image"
#define ATTR_DEPTH_IMAGE "depth_image"
#define ATTR_DEPTH_IMAGE_TYPE "depth_image_type"

#define ATTR_X "x"
#define ATTR_Y "y"
#define ATTR_Z "z"
#define ATTR_GYRO_X "gyro_x"
#define ATTR_GYRO_Y "gyro_y"
#define ATTR_GYRO_Z "gyro_z"
#define ATTR_ACCEL_X "accel_x"
#define ATTR_ACCEL_Y "accel_y"
#define ATTR_ACCEL_Z "accel_z"
#define ATTR_MAGNET_X "magnet_x"
#define ATTR_MAGNET_Y "magnet_y"
#define ATTR_MAGNET_Z "magnet_z"
#define ATTR_GRAVITY_X "gravity_x"
#define ATTR_GRAVITY_Y "gravity_y"
#define ATTR_GRAVITY_Z "gravity_z"
#define ATTR_ACCEL_WITH_GRAVITY_X "accel_with_gravity_x"
#define ATTR_ACCEL_WITH_GRAVITY_Y "accel_with_gravity_y"
#define ATTR_ACCEL_WITH_GRAVITY_Z "accel_with_gravity_z"

#define ATTR_LEFT_EYE_LOC "left_eye_loc"
#define ATTR_RIGHT_EYE_LOC "right_eye_loc"
#define ATTR_NOSE_TIP_LOC "nose_tip_loc"
#define ATTR_MOUTH_LOC "mouth_loc"

#define EVENT_ENROLL "enroll"
#define EVENT_VERIFY "verify"
#define EVENT_START_SESSION "start_session"
#define EVENT_REF_DISTANCE "ref_distance"
#define EVENT_REF_DISTANCE_END "ref_distance_end"
#define EVENT_REF_DISTANCE_CANCEL "ref_distance_cancel"
#define EVENT_NEAR_PHOTINUS_START "near_photinus_start"
#define EVENT_NEAR_PHOTINUS_END "near_photinus_end"
#define EVENT_FAR_PHOTINUS_START "far_photinus_start"
#define EVENT_FAR_PHOTINUS_END "far_photinus_end"
#define EVENT_PHOTINUS_PATTERN "photinus_pattern"
#define EVENT_MOTION_START "motion_start"
#define EVENT_MOTION_END "motion_end"
#define EVENT_SET_MODE "set_mode"
#define EVENT_CAMERA_INFO "camera_info"
#define EVENT_VISOR_INFO "visor_info"
#define EVENT_POSE_START "pose_start"
#define EVENT_POSE_READY "pose_ready"
#define EVENT_POSE "pose"
#define EVENT_SERVER_DATA_BLOB "server_data_blob"

#define EVENT_DOC_ID_START "doc_id_start"
#define EVENT_DOC_ID_END "doc_id_end"
#define EVENT_DOC_ID_INFO "doc_id_info"
#define ATTR_DOC_CLASS "doc_class"
#define ATTR_DOC_IDTYPE "doc_idtype"
#define ATTR_DOC_COUNTRY "doc_country"

#define EVENT_UX_COMMAND "ux_command"

#define EVENT_CAMERA_LIVENESS_START "camera_liveness_start"
#define EVENT_CAMERA_LIVENESS_END "camera_liveness_end"
#define EVENT_CAMERA_LIVENESS_REQ_STATUS "camera_liveness_req_status"
#define EVENT_CAMERA_LIVENESS_STATUS "camera_liveness_status"

#define EVENT_PHOTINUS_COLOR_CHANGED "photinus_color_changed"
#define EVENT_CONFIRM_COLOR_CHANGE "confirm_color_change"

#define ATTR_NATIVE_TIMESTAMP "native_timestamp"

// for start_session
#define ATTR_CAPTURE_DATA "capture_data"

// for enroll and verify
#define ATTR_UID "uid"

// for EVENT_PHOTINUS_PATTERN
#define ATTR_METADATA "metadata"
#define ATTR_PATTERN "pattern"
#define ATTR_EXPOSURE_TIME "exposure_time"
#define ATTR_ISO "iso"
#define ATTR_F_NUMBER "f_number"
#define ATTR_LUX "lux"
#define ATTR_COLOR_CHANGED_EVENTS "color_changed_events"

// for EVENT_SET_MODE
#define ATTR_MODE "mode"
#define ATTR_MODE_BALANCED "balanced"
#define ATTR_MODE_SECURE_PLUS "secure+"

// for EVENT_CAMERA_INFO
#define ATTR_CAMERA_MATRIX "camera_matrix"

#define ATTR_SHUTTER_SPEED "shutter_speed"

#define ATTR_ISO "iso"

// for EVENT_VISOR_INFO
#define ATTR_TARGET_DEPTH "target_depth"

// for EVENT_POSE
#define ATTR_OFFSET_X "offset_x"
#define ATTR_OFFSET_Y "offset_y"
#define ATTR_DISTANCE "distance"
#define ATTR_ROLL "roll"
#define ATTR_PITCH "pitch"
#define ATTR_PSEUDO_YAW "pseudo_yaw"
#define ATTR_PSEUDO_PITCH "pseudo_pitch"
#define ATTR_YAW "yaw"
#define ATTR_VISOR_POINTS "visor_points"
#define ATTR_FACE_BRIGHTNESS "face_brightness"
#define ATTR_FACE_ROI "face_roi"
#define ATTR_IOD "iod"
#define ATTR_SHIFT "shift"
#define ATTR_SHIFT_TIME "shift_time"
#define ATTR_SEQUENCE_ID "sequence_id"

// for EVENT_DOC_ID_INFO
#define ATTR_CORNERS "corners"


// for EVENT_SERVER_DATA_BLOB
#define ATTR_SERVER_DATA "server_data"
#define ATTR_LIVENESS_BLOB "liveness_blob"
#define ATTR_BEST_IMAGE "best_image"

// for EVENT_CAMERA_LIVENESS_REQ_STATUS
#define ATTR_START_SN "start_sn"

// for EVENT_CAMERA_LIVENESS_STATUS
#define ATTR_HAVE_DUPLICATES "have_duplicates"
#define ATTR_NUM_DUPLICATE_FRAMES "num_duplicate_frames"
#define ATTR_DUPLICATES_START_TIME "duplicates_start_time"
#define ATTR_DUPLICATE_SEQUENCES "duplicate_sequences"

// for EVENT_REF_DISTANCE
#define ATTR_IS_NEAR "is_near"

#define ATTR_CAPTURE_ERROR "capture_error"

// for EVENT_UX_COMMAND
#define ATTR_DISPLAY_MESSAGE "display_message"
#define ATTR_PHOTINUS_COLOR "photinus_color"
#define ATTR_UX_PROGRESS "ux_progress"
#define ATTR_PROGRESS_BAR_VALUE "progress_bar_value"
#define ATTR_UI_COMMAND "ui_command"
#define ATTR_CAMERA_COMMAND "camera_command"
#define ATTR_STEP_NAME "step_name"

#define UX_STEP_NAME_INITIAL "initial"
#define UX_STEP_NAME_NEAR "near"
#define UX_STEP_NAME_FAR "far"
#define UX_STEP_NAME_NEAR_PHOTINUS "near_photinus"

#define UX_MESSAGE_START "start"
#define UX_MESSAGE_FINISH "finish"
#define UX_MESSAGE_MORE_CAPTURES_NEEDED "more_captures_needed"
#define UX_MESSAGE_FACE_NONE_DETECTED "face_none_detected"
#define UX_MESSAGE_FACE_HOLD_STILL_INITIAL "face_hold_still_initial"
#define UX_MESSAGE_FACE_HOLD_STILL "face_hold_still"
#define UX_MESSAGE_FACE_MOVE_CLOSER "face_move_closer"
#define UX_MESSAGE_FACE_MOVE_AWAY "face_move_away"
#define UX_MESSAGE_FACE_TILT_UP "face_tilt_up"
#define UX_MESSAGE_FACE_TILT_DOWN "face_tilt_down"
#define UX_MESSAGE_FACE_TILT_LEFT "face_tilt_left"
#define UX_MESSAGE_FACE_TILT_RIGHT "face_tilt_right"
#define UX_MESSAGE_FACE_NOT_UPRIGHT "face_not_upright"
#define UX_MESSAGE_FACE_KEEP_CENTER "face_keep_center"
#define UX_MESSAGE_FACE_KEEP_CENTER_SEVERE "face_keep_center_severe"
#define UX_MESSAGE_FACE_STOP_MOVEMENT "face_stop_movement"

#define UX_CAMERA_COMMAND_LOCK_EXPOSURE_AND_WHITE_BALANCE "lock_exposure_and_white_balance"
#define UX_CAMERA_COMMAND_UNLOCK_EXPOSURE_AND_WHITE_BALANCE "unlock_exposure_and_white_balance"

#define UX_UI_COMMAND_HINT_MOVE_AWAY "hint_move_away"
#define UX_UI_COMMAND_HINT_MOVE_CLOSER "hint_move_closer"

#endif
