diff --git a/profiles/audio/a2dp-codecs.h b/profiles/audio/a2dp-codecs.h
index 649e241..6f667d3 100644
--- a/profiles/audio/a2dp-codecs.h
+++ b/profiles/audio/a2dp-codecs.h
#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;
.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
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
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
diff --git a/tools/avinfo.c b/tools/avinfo.c
index 424221f..1852b24 100644
--- a/tools/avinfo.c
+++ b/tools/avinfo.c
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");
}