From 120b63ecba74a2c3e31b0c8ff3e22696488cd522 Mon Sep 17 00:00:00 2001
From: Antonio Ospite <ospite@studenti.unina.it>
Date: Wed, 25 Jan 2012 15:44:24 +0100
Subject: [PATCH] Make struct am7xxx_header and related types private

There is not need for struct am7xxx_header, am7xxx_packet_type, and the
other headers structs to be in the public am7xxx.h file.
---
 src/am7xxx.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/am7xxx.h | 64 -----------------------------------------------------------
 2 files changed, 65 insertions(+), 64 deletions(-)

diff --git a/src/am7xxx.c b/src/am7xxx.c
index cdcbf3f..7ef981e 100644
--- a/src/am7xxx.c
+++ b/src/am7xxx.c
@@ -26,6 +26,71 @@
 #define AM7XXX_VENDOR_ID  0x1de1
 #define AM7XXX_PRODUCT_ID 0xc101
 
+typedef enum {
+	AM7XXX_PACKET_TYPE_DEVINFO = 0x01,
+	AM7XXX_PACKET_TYPE_IMAGE   = 0x02,
+	AM7XXX_PACKET_TYPE_POWER   = 0x04,
+	AM7XXX_PACKET_TYPE_UNKNOWN = 0x05,
+} am7xxx_packet_type;
+
+struct am7xxx_generic_header {
+	uint32_t field0;
+	uint32_t field1;
+	uint32_t field2;
+	uint32_t field3;
+};
+
+struct am7xxx_devinfo_header {
+	uint32_t native_width;
+	uint32_t native_height;
+	uint32_t unknown0;
+	uint32_t unknown1;
+};
+
+struct am7xxx_image_header {
+	uint32_t format;
+	uint32_t width;
+	uint32_t height;
+	uint32_t image_size;
+};
+
+struct am7xxx_power_header {
+	uint32_t bit2;
+	uint32_t bit1;
+	uint32_t bit0;
+};
+
+/*
+ * Examples of packet headers:
+ *
+ * Image header:
+ * 02 00 00 00 00 10 3e 10 01 00 00 00 20 03 00 00 e0 01 00 00 53 E8 00 00
+ *
+ * Power header:
+ * 04 00 00 00 00 0c ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ */
+
+/* The header size on the wire is known to be always 24 bytes, regardless of
+ * the memory configuration enforced by different architechtures or compilers
+ * for struct am7xxx_header
+ */
+#define AM7XXX_HEADER_WIRE_SIZE 24
+
+struct am7xxx_header {
+	uint32_t packet_type;
+	uint8_t unknown0;
+	uint8_t header_data_len;
+	uint8_t unknown2;
+	uint8_t unknown3;
+	union {
+		struct am7xxx_generic_header data;
+		struct am7xxx_devinfo_header devinfo;
+		struct am7xxx_image_header image;
+		struct am7xxx_power_header power;
+	} header_data;
+};
+
+
 static void dump_devinfo_header(struct am7xxx_devinfo_header *d)
 {
 	if (d == NULL)
diff --git a/src/am7xxx.h b/src/am7xxx.h
index 393c53f..39e12e3 100644
--- a/src/am7xxx.h
+++ b/src/am7xxx.h
@@ -29,13 +29,6 @@ extern "C" {
 typedef libusb_device_handle *am7xxx_device;
 
 typedef enum {
-	AM7XXX_PACKET_TYPE_DEVINFO = 0x01,
-	AM7XXX_PACKET_TYPE_IMAGE   = 0x02,
-	AM7XXX_PACKET_TYPE_POWER   = 0x04,
-	AM7XXX_PACKET_TYPE_UNKNOWN = 0x05,
-} am7xxx_packet_type;
-
-typedef enum {
 	AM7XXX_IMAGE_FORMAT_JPEG = 1,
 	AM7XXX_IMAGE_FORMAT_NV12 = 2,
 } am7xxx_image_format;
@@ -48,63 +41,6 @@ typedef enum {
 	AM7XXX_POWER_TURBO  = 4,
 } am7xxx_power_mode;
 
-struct am7xxx_generic_header {
-	uint32_t field0;
-	uint32_t field1;
-	uint32_t field2;
-	uint32_t field3;
-};
-
-struct am7xxx_devinfo_header {
-	uint32_t native_width;
-	uint32_t native_height;
-	uint32_t unknown0;
-	uint32_t unknown1;
-};
-
-struct am7xxx_image_header {
-	uint32_t format;
-	uint32_t width;
-	uint32_t height;
-	uint32_t image_size;
-};
-
-struct am7xxx_power_header {
-	uint32_t bit2;
-	uint32_t bit1;
-	uint32_t bit0;
-};
-
-/*
- * Examples of packet headers:
- *
- * Image header:
- * 02 00 00 00 00 10 3e 10 01 00 00 00 20 03 00 00 e0 01 00 00 53 E8 00 00
- *
- * Power header:
- * 04 00 00 00 00 0c ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- */
-
-/* The header size on the wire is known to be always 24 bytes, regardless of
- * the memory configuration enforced by different architechtures or compilers
- * for struct am7xxx_header
- */
-#define AM7XXX_HEADER_WIRE_SIZE 24
-
-struct am7xxx_header {
-	uint32_t packet_type;
-	uint8_t unknown0;
-	uint8_t header_data_len;
-	uint8_t unknown2;
-	uint8_t unknown3;
-	union {
-		struct am7xxx_generic_header data;
-		struct am7xxx_devinfo_header devinfo;
-		struct am7xxx_image_header image;
-		struct am7xxx_power_header power;
-	} header_data;
-};
-
 am7xxx_device am7xxx_init(void);
 
 void am7xxx_shutdown(am7xxx_device dev);
-- 
2.1.4