a2dp-codecs: Properly define macros and struct for LDAC codec
authorPali Rohár <pali.rohar@gmail.com>
Sun, 23 Dec 2018 10:40:19 +0000 (11:40 +0100)
committerhimanshu <h.himanshu@samsung.com>
Wed, 22 Jan 2020 07:38:03 +0000 (13:08 +0530)
Change-Id: I92f334de26bde0e7fdb470c2c8ec659c1961ee4f
Signed-off-by: himanshu <h.himanshu@samsung.com>
profiles/audio/a2dp-codecs.h
tools/avinfo.c

index 649e241..6f667d3 100755 (executable)
 #define LDAC_VENDOR_ID                 0x0000012d
 #define LDAC_CODEC_ID                  0x00aa
 
+#define LDAC_SAMPLING_FREQ_44100       0x20
+#define LDAC_SAMPLING_FREQ_48000       0x10
+#define LDAC_SAMPLING_FREQ_88200       0x08
+#define LDAC_SAMPLING_FREQ_96000       0x04
+#define LDAC_SAMPLING_FREQ_176400      0x02
+#define LDAC_SAMPLING_FREQ_192000      0x01
+
+#define LDAC_CHANNEL_MODE_MONO         0x04
+#define LDAC_CHANNEL_MODE_DUAL         0x02
+#define LDAC_CHANNEL_MODE_STEREO       0x01
+
 typedef struct {
        uint8_t vendor_id4;
        uint8_t vendor_id3;
@@ -225,6 +236,12 @@ typedef struct {
                .codec_id1 = (((c) >> 8) & 0xff), \
        })
 
+typedef struct {
+       a2dp_vendor_codec_t info;
+       uint8_t frequency;
+       uint8_t channel_mode;
+} __attribute__ ((packed)) a2dp_ldac_t;
+
 #if defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && \
        __BYTE_ORDER == __LITTLE_ENDIAN
 
@@ -268,11 +285,6 @@ typedef struct {
        uint8_t frequency:4;
 } __attribute__ ((packed)) a2dp_aptx_t;
 
-typedef struct {
-       a2dp_vendor_codec_t info;
-       uint8_t unknown[2];
-} __attribute__ ((packed)) a2dp_ldac_t;
-
 #elif defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && \
        __BYTE_ORDER == __BIG_ENDIAN
 
@@ -316,11 +328,6 @@ typedef struct {
        uint8_t channel_mode:4;
 } __attribute__ ((packed)) a2dp_aptx_t;
 
-typedef struct {
-       a2dp_vendor_codec_t info;
-       uint8_t unknown[2];
-} __attribute__ ((packed)) a2dp_ldac_t;
-
 #else
 #error "Unknown byte order"
 #endif
index 424221f..1852b24 100755 (executable)
@@ -204,8 +204,8 @@ static void print_ldac(a2dp_ldac_t *ldac, uint8_t size)
                return;
        }
 
-       printf("\n\t\t\tUnknown: %02x %02x", ldac->unknown[0],
-                                                       ldac->unknown[1]);
+       printf("\n\t\t\tUnknown: %02x %02x", ldac->frequency,
+                                                       ldac->channel_mode);
 
        printf("\n");
 }