From 537dba6265eaa4ff45b088480957df7a7dae65e3 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sat, 1 Mar 2014 12:01:21 -0800 Subject: [PATCH] android: Fix ntoh24 and hton24 for big endian platforms --- android/avrcp-lib.c | 30 ++++++++---------------------- android/avrcp-lib.h | 3 --- 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/android/avrcp-lib.c b/android/avrcp-lib.c index e71f95cf6..34eea6644 100644 --- a/android/avrcp-lib.c +++ b/android/avrcp-lib.c @@ -57,18 +57,6 @@ struct avrcp_header { } __attribute__ ((packed)); #define AVRCP_HEADER_LENGTH 7 -static inline uint32_t ntoh24(const uint8_t src[3]) -{ - return src[0] << 16 | src[1] << 8 | src[2]; -} - -static inline void hton24(uint8_t dst[3], uint32_t src) -{ - dst[0] = (src >> 16) & 0xff; - dst[1] = (src >> 8) & 0xff; - dst[2] = src & 0xff; -} - #elif __BYTE_ORDER == __BIG_ENDIAN struct avrcp_header { @@ -81,24 +69,22 @@ struct avrcp_header { } __attribute__ ((packed)); #define AVRCP_HEADER_LENGTH 7 +#else +#error "Unknown byte order" +#endif + static inline uint32_t ntoh24(const uint8_t src[3]) { - uint32_t dst; - - memcpy(&dst, src, sizeof(src)); - - return dst; + return src[0] << 16 | src[1] << 8 | src[2]; } static inline void hton24(uint8_t dst[3], uint32_t src) { - memcpy(&dst, src, sizeof(dst)); + dst[0] = (src & 0xff0000) >> 16; + dst[1] = (src & 0x00ff00) >> 8; + dst[2] = (src & 0x0000ff); } -#else -#error "Unknown byte order" -#endif - struct avrcp { struct avctp *conn; diff --git a/android/avrcp-lib.h b/android/avrcp-lib.h index da8c9905a..0407cb4a7 100644 --- a/android/avrcp-lib.h +++ b/android/avrcp-lib.h @@ -74,9 +74,6 @@ #define CAP_COMPANY_ID 0x02 #define CAP_EVENTS_SUPPORTED 0x03 -/* Company IDs for vendor dependent commands */ -#define IEEEID_BTSIG 0x001958 - struct avrcp; struct avrcp_control_handler { -- 2.47.3