assessibility.c 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. ********************************************************************************
  3. * USB UVC Driver
  4. *
  5. * (c) Copyright 2010-2015, All winners Co,Ld.
  6. * All Right Reserved
  7. *
  8. * FileName : assessibility.c
  9. *
  10. * Author : Kingvan.Tong
  11. *
  12. * Date : 2013.03.26
  13. *
  14. * Description : USB Webcam
  15. *
  16. * Others : NULL
  17. *
  18. * History:
  19. * <time> <version > <author> <desc>
  20. * 2013.03.26 1.0 Kingvan.Tong build this file
  21. *
  22. ********************************************************************************
  23. */
  24. #include <string.h>
  25. #include <stdio.h>
  26. #include <stdlib.h>
  27. #include <hal_log.h>
  28. #include "assessibility.h"
  29. unsigned int uvc_strlcpy(char *dest, const char *src, unsigned int size)
  30. {
  31. unsigned int ret = strlen(src);
  32. if (size) {
  33. unsigned int len = (ret >= size) ? size - 1 : ret;
  34. memcpy(dest, src, len);
  35. dest[len] = '\0';
  36. }
  37. return ret;
  38. }
  39. unsigned int uvc_strlcat(char *dest, const char *src, unsigned int count)
  40. {
  41. unsigned int dsize = strlen(dest);
  42. unsigned int len = strlen(src);
  43. unsigned int res = dsize + len;
  44. /* This would be a bug */
  45. if(dsize >= count) {
  46. hal_log_err("uvc_strlcat err!\n");
  47. }
  48. dest += dsize;
  49. count -= dsize;
  50. if (len >= count) {
  51. len = count-1;
  52. }
  53. memcpy(dest, src, len);
  54. dest[len] = 0;
  55. return res;
  56. }
  57. unsigned short get_unaligned_le16( const void *p )
  58. {
  59. // unsigned short *ptr = (unsigned short *)p;
  60. // return *ptr;
  61. unsigned char* data = (unsigned char*)p;
  62. return ((data[0])|(data[1]<<8));
  63. }
  64. unsigned int get_unaligned_le32( const void *p )
  65. {
  66. // unsigned int *ptr = (unsigned int *)p;
  67. // return *ptr;
  68. unsigned char* data = (unsigned char*)p;
  69. return ((data[0])|(data[1]<<8)|(data[2]<<16)|(data[3]<<24));
  70. }