20#ifndef FREERDP_CHANNEL_RDPECAM_H 
   21#define FREERDP_CHANNEL_RDPECAM_H 
   23#include <freerdp/api.h> 
   24#include <freerdp/dvc.h> 
   25#include <freerdp/types.h> 
   31#define RDPECAM_CHANNEL_NAME "rdpecam" 
   32#define RDPECAM_DVC_CHANNEL_NAME "rdpecam" 
   33#define RDPECAM_CONTROL_DVC_CHANNEL_NAME "RDCamera_Device_Enumerator" 
   42    CAM_MSG_ID_SuccessResponse = 0x01,
 
   43    CAM_MSG_ID_ErrorResponse = 0x02,
 
   44    CAM_MSG_ID_SelectVersionRequest = 0x03,
 
   45    CAM_MSG_ID_SelectVersionResponse = 0x04,
 
   46    CAM_MSG_ID_DeviceAddedNotification = 0x05,
 
   47    CAM_MSG_ID_DeviceRemovedNotification = 0x06,
 
   48    CAM_MSG_ID_ActivateDeviceRequest = 0x07,
 
   49    CAM_MSG_ID_DeactivateDeviceRequest = 0x08,
 
   50    CAM_MSG_ID_StreamListRequest = 0x09,
 
   51    CAM_MSG_ID_StreamListResponse = 0x0A,
 
   52    CAM_MSG_ID_MediaTypeListRequest = 0x0B,
 
   53    CAM_MSG_ID_MediaTypeListResponse = 0x0C,
 
   54    CAM_MSG_ID_CurrentMediaTypeRequest = 0x0D,
 
   55    CAM_MSG_ID_CurrentMediaTypeResponse = 0x0E,
 
   56    CAM_MSG_ID_StartStreamsRequest = 0x0F,
 
   57    CAM_MSG_ID_StopStreamsRequest = 0x10,
 
   58    CAM_MSG_ID_SampleRequest = 0x11,
 
   59    CAM_MSG_ID_SampleResponse = 0x12,
 
   60    CAM_MSG_ID_SampleErrorResponse = 0x13,
 
   61    CAM_MSG_ID_PropertyListRequest = 0x14,
 
   62    CAM_MSG_ID_PropertyListResponse = 0x15,
 
   63    CAM_MSG_ID_PropertyValueRequest = 0x16,
 
   64    CAM_MSG_ID_PropertyValueResponse = 0x17,
 
   65    CAM_MSG_ID_SetPropertyValueRequest = 0x18,
 
   68#define CAM_HEADER_SIZE 2 
   92  char* VirtualChannelName;
 
 
   98  char* VirtualChannelName;
 
 
  110  CAM_ERROR_CODE_UnexpectedError = 0x00000001,
 
  111  CAM_ERROR_CODE_InvalidMessage = 0x00000002,
 
  112  CAM_ERROR_CODE_NotInitialized = 0x00000003,
 
  113  CAM_ERROR_CODE_InvalidRequest = 0x00000004,
 
  114  CAM_ERROR_CODE_InvalidStreamNumber = 0x00000005,
 
  115  CAM_ERROR_CODE_InvalidMediaType = 0x00000006,
 
  116  CAM_ERROR_CODE_OutOfMemory = 0x00000007,
 
  117  CAM_ERROR_CODE_ItemNotFound = 0x00000008,
 
  118  CAM_ERROR_CODE_SetNotFound = 0x00000009,
 
  119  CAM_ERROR_CODE_OperationNotSupported = 0x0000000A,
 
  125  CAM_ERROR_CODE ErrorCode;
 
 
  145  CAM_STREAM_FRAME_SOURCE_TYPE_Color = 0x0001,
 
  146  CAM_STREAM_FRAME_SOURCE_TYPE_Infrared = 0x0002,
 
  147  CAM_STREAM_FRAME_SOURCE_TYPE_Custom = 0x0008,
 
  148} CAM_STREAM_FRAME_SOURCE_TYPES;
 
  152  CAM_STREAM_CATEGORY_Capture = 0x01,
 
  153} CAM_STREAM_CATEGORY;
 
  157  CAM_STREAM_FRAME_SOURCE_TYPES FrameSourceTypes;
 
  158  CAM_STREAM_CATEGORY StreamCategory;
 
 
  178  CAM_MEDIA_FORMAT_INVALID = 0x00,
 
  179  CAM_MEDIA_FORMAT_H264 = 0x01,
 
  180  CAM_MEDIA_FORMAT_MJPG = 0x02,
 
  181  CAM_MEDIA_FORMAT_YUY2 = 0x03,
 
  182  CAM_MEDIA_FORMAT_NV12 = 0x04,
 
  183  CAM_MEDIA_FORMAT_I420 = 0x05,
 
  184  CAM_MEDIA_FORMAT_RGB24 = 0x06,
 
  185  CAM_MEDIA_FORMAT_RGB32 = 0x07,
 
  190  CAM_MEDIA_TYPE_DESCRIPTION_FLAG_DecodingRequired = 0x01,
 
  191  CAM_MEDIA_TYPE_DESCRIPTION_FLAG_BottomUpImage = 0x02,
 
  192} CAM_MEDIA_TYPE_DESCRIPTION_FLAGS;
 
  196  CAM_MEDIA_FORMAT Format;
 
  199  UINT32 FrameRateNumerator;
 
  200  UINT32 FrameRateDenominator;
 
  201  UINT32 PixelAspectRatioNumerator;
 
  202  UINT32 PixelAspectRatioDenominator;
 
  203  CAM_MEDIA_TYPE_DESCRIPTION_FLAGS Flags;
 
 
  209  size_t N_Descriptions;
 
 
  261  CAM_ERROR_CODE ErrorCode;
 
 
  271  CAM_PROPERTY_SET_CameraControl = 0x01,
 
  272  CAM_PROPERTY_SET_VideoProcAmp = 0x02,
 
  276#define CAM_PROPERTY_ID_CAMERA_CONTROL_Exposure 0x01 
  277#define CAM_PROPERTY_ID_CAMERA_CONTROL_Focus 0x02 
  278#define CAM_PROPERTY_ID_CAMERA_CONTROL_Pan 0x03 
  279#define CAM_PROPERTY_ID_CAMERA_CONTROL_Roll 0x04 
  280#define CAM_PROPERTY_ID_CAMERA_CONTROL_Tilt 0x05 
  281#define CAM_PROPERTY_ID_CAMERA_CONTROL_Zoom 0x06 
  284#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_BacklightCompensation 0x01 
  285#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_Brightness 0x02 
  286#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_Contrast 0x03 
  287#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_Hue 0x04 
  288#define CAM_PROPERTY_ID_VIDEO_PROC_AMP_WhiteBalance 0x05 
  292  CAM_PROPERTY_CAPABILITY_Manual = 0x01,
 
  293  CAM_PROPERTY_CAPABILITY_Auto = 0x02,
 
  294} CAM_PROPERTY_CAPABILITIES;
 
  298  CAM_PROPERTY_SET PropertySet;
 
  300  CAM_PROPERTY_CAPABILITIES Capabilities;
 
 
  317  CAM_PROPERTY_SET PropertySet;
 
 
  323  CAM_PROPERTY_MODE_Manual = 0x01,
 
  324  CAM_PROPERTY_MODE_Auto = 0x02,
 
  329  CAM_PROPERTY_MODE Mode;
 
 
  342  CAM_PROPERTY_SET PropertySet;