ark_jpeg_io.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /*****************************************************************************
  2. * To be included by both applications and driver
  3. *****************************************************************************/
  4. #ifndef _ARK_JPEG_IO_H_
  5. #define _ARK_JPEG_IO_H_
  6. /*************************************************************************
  7. * Ioctl command definition
  8. *************************************************************************/
  9. #define ARKJPEG_IOCTL_BASE 0xe0
  10. #define ARKJPEG_DECODE _IOW(ARKJPEG_IOCTL_BASE, 0, unsigned long)
  11. #define ARKJPEG_SET_DECODE_OPT _IOW(ARKJPEG_IOCTL_BASE, 1, unsigned long)
  12. #define ARKJPEG_GET_INPUTBUF _IOW(ARKJPEG_IOCTL_BASE, 2, unsigned long)
  13. #define ARKJPEG_GET_DECSTATUS _IOW(ARKJPEG_IOCTL_BASE, 3, unsigned long)
  14. #define ARKJPEG_SET_JPG_SIZE _IOW(ARKJPEG_IOCTL_BASE, 4, unsigned long)
  15. #define ARKJPEG_BREAK_DECODE _IOW(ARKJPEG_IOCTL_BASE, 5, unsigned long)
  16. #define ARKJPEG_GET_DECODEINFO _IOW(ARKJPEG_IOCTL_BASE, 6, unsigned long)
  17. #define ARKJPEG_GET_APIEVENT _IOW(ARKJPEG_IOCTL_BASE, 7, unsigned long)
  18. #define ARKJPEG_SET_APIDONEEVENT _IOW(ARKJPEG_IOCTL_BASE, 8, unsigned long)
  19. #define ARKJPEG_SET_BUFFER _IOW(ARKJPEG_IOCTL_BASE, 9, unsigned long)
  20. #define ARKJPEG_GET_BUFFER _IOW(ARKJPEG_IOCTL_BASE,10, unsigned long)
  21. #define ARKJPEG_REPEAT_SCALER _IOW(ARKJPEG_IOCTL_BASE,11, unsigned long)
  22. #define ARKJPEG_GET_PART_PIC _IOW(ARKJPEG_IOCTL_BASE,12, unsigned long)
  23. typedef enum {
  24. NO_SCALER, //no scaler
  25. UNIFORM_SCALER, //scaler keep the aspect ratio
  26. NOMAL_SCALER //scaler don't keep the aspect ratio
  27. } JPEG_SCALER_MODE;
  28. typedef enum {
  29. ZOOM_IN_ONLY,
  30. ZOOM_OUT_ONLY,
  31. ZOOM_IN_OUT
  32. } JPEG_ZOOM_MODE;
  33. typedef enum {
  34. FILE_IN_DEVICE,
  35. FILE_IN_MEMORY
  36. } JPEG_FILE_TYPE;
  37. typedef enum {
  38. DEC_FREE,
  39. DEC_BUSYING
  40. } JPEG_DEC_STATUS;
  41. typedef enum {
  42. DEC_SUCCESS,
  43. DEC_ERROR,
  44. DEC_BREAKED
  45. } JPEG_DEC_RESULT;
  46. typedef enum {
  47. CLOCKWISE_0,
  48. CLOCKWISE_90,
  49. CLOCKWISE_180,
  50. CLOCKWISE_270,
  51. } ROTATE_ANGLE;
  52. typedef enum {
  53. FREAD,
  54. FSEEK,
  55. DEC_OVER
  56. } API_EVENT;
  57. typedef struct {
  58. JPEG_SCALER_MODE ScalerMode;
  59. JPEG_ZOOM_MODE ZoomMode;
  60. ROTATE_ANGLE RotateAngle;
  61. unsigned int dwDestWidth;
  62. unsigned int dwDestHeight;
  63. unsigned int RepeatdwSrcWidth;
  64. unsigned int RepeatdwSrcHeight;
  65. unsigned int format;
  66. unsigned int SrcImagePhyAddr;
  67. unsigned int DestImagePhyAddr;
  68. } JPEG_DECODE_OPT, *PJPEG_DECODE_OPT;
  69. typedef struct {
  70. JPEG_DEC_RESULT DecResult;
  71. unsigned int dwDecSize;
  72. unsigned int dwSrcWidth;
  73. unsigned int dwSrcHeight;
  74. unsigned int RepeatdwSrcWidth;
  75. unsigned int RepeatdwSrcHeight;
  76. unsigned int dwOutWidth;
  77. unsigned int dwOutHeight;
  78. } JPEG_DECODE_INFO;
  79. typedef struct {
  80. API_EVENT EventType;
  81. unsigned int dwReadLen;
  82. long lOffset;
  83. int nOrigin;
  84. JPEG_DEC_RESULT DecResult;
  85. } JPEG_API_INFO;
  86. typedef struct {
  87. unsigned int dwReadedLen;
  88. int nSeekRet;
  89. } JPEG_API_RETINFO;
  90. typedef struct {
  91. unsigned int base_phys;
  92. int size;
  93. } JPEG_INPUT_BUFINFO;
  94. struct part_pic {
  95. unsigned src_phys_base;
  96. unsigned src_width;
  97. unsigned src_height;
  98. unsigned part_phys_base;
  99. unsigned x_width;
  100. unsigned y_height;
  101. unsigned part_width;
  102. unsigned part_height;
  103. };
  104. struct jpeg_buffer {
  105. unsigned int file_size;
  106. unsigned int file_base_phys;
  107. void *file_user_base_virt;
  108. unsigned int decode_size;
  109. unsigned int decode_base_phys;
  110. void *decode_user_base_virt;
  111. };
  112. #endif