[linux-minidisc] libnetmd: remember model number of detected netmd device
Hi,
as netmd_get_devname(..) gets device name from the usb descriptor it is
"Net MD Walkman" or "Net MD/HiMD" on most devices.
To differentiate them (Sony MZ-N710, Sony MZ-RH1, ..) i made a patch to
remember the model number from the known_devices list.
So we can show it in our application analogous to the himd detection
system in qhimdtransfer.
Regards
Thomas
>From 9f6874d046e9b7de37c7159cebd430846a02366c Mon Sep 17 00:00:00 2001
From: Thomas Arp <manner.moe@gmx.de>
Date: Thu, 15 Sep 2011 20:13:37 +0200
Subject: [PATCH 3/3] remember model of detected netmd device from
known_devices[] to show it in the application,
analogous to the detection system for himd devices in
qhimdtransfer
---
libnetmd/netmd_dev.c | 85 +++++++++++++++++++++++++------------------------
libnetmd/netmd_dev.h | 2 +
netmdcli/netmdcli.c | 1 +
3 files changed, 46 insertions(+), 42 deletions(-)
diff --git a/libnetmd/netmd_dev.c b/libnetmd/netmd_dev.c
index 0f3f3b0..1a18c7d 100644
--- a/libnetmd/netmd_dev.c
+++ b/libnetmd/netmd_dev.c
@@ -33,48 +33,48 @@ static libusb_context *ctx = NULL;
/*! list of known vendor/prod id's for NetMD devices */
static struct netmd_devices const known_devices[] =
{
- {0x54c, 0x34}, /* Sony PCLK-XX */
- {0x54c, 0x36}, /* Sony (unknown model) */
- {0x54c, 0x75}, /* Sony MZ-N1 */
- {0x54c, 0x7c}, /* Sony (unknown model) */
- {0x54c, 0x80}, /* Sony LAM-1 */
- {0x54c, 0x81}, /* Sony MDS-JE780/JB980 */
- {0x54c, 0x84}, /* Sony MZ-N505 */
- {0x54c, 0x85}, /* Sony MZ-S1 */
- {0x54c, 0x86}, /* Sony MZ-N707 */
- {0x54c, 0x8e}, /* Sony CMT-C7NT */
- {0x54c, 0x97}, /* Sony PCGA-MDN1 */
- {0x54c, 0xad}, /* Sony CMT-L7HD */
- {0x54c, 0xc6}, /* Sony MZ-N10 */
- {0x54c, 0xc7}, /* Sony MZ-N910 */
- {0x54c, 0xc8}, /* Sony MZ-N710/NE810/NF810 */
- {0x54c, 0xc9}, /* Sony MZ-N510/NF610 */
- {0x54c, 0xca}, /* Sony MZ-NE410/DN430/NF520 */
- {0x54c, 0xeb}, /* Sony MZ-NE810/NE910 */
- {0x54c, 0xe7}, /* Sony CMT-M333NT/M373NT */
- {0x54c, 0x101}, /* Sony LAM-10 */
- {0x54c, 0x113}, /* Aiwa AM-NX1 */
- {0x54c, 0x14c}, /* Aiwa AM-NX9 */
- {0x54c, 0x17e}, /* Sony MZ-NH1 */
- {0x54c, 0x180}, /* Sony MZ-NH3D */
- {0x54c, 0x182}, /* Sony MZ-NH900 */
- {0x54c, 0x184}, /* Sony MZ-NH700/800 */
- {0x54c, 0x186}, /* Sony MZ-NH600/600D */
- {0x54c, 0x188}, /* Sony MZ-N920 */
- {0x54c, 0x18a}, /* Sony LAM-3 */
- {0x54c, 0x1e9}, /* Sony MZ-DH10P */
- {0x54c, 0x219}, /* Sony MZ-RH10 */
- {0x54c, 0x21b}, /* Sony MZ-RH910 */
- {0x54c, 0x21d}, /* Sony CMT-AH10 */
- {0x54c, 0x22c}, /* Sony CMT-AH10 */
- {0x54c, 0x23c}, /* Sony DS-HMD1 */
- {0x54c, 0x286}, /* Sony MZ-RH1 */
-
- {0x4dd, 0x7202}, /* Sharp IM-MT880H/MT899H */
- {0x4dd, 0x9013}, /* Sharp IM-DR400/DR410 */
- {0x4dd, 0x9014}, /* Sharp IM-DR80/DR420/DR580 and Kenwood DMC-S9NET */
-
- {0, 0} /* terminating pair */
+ {0x54c, 0x34, "Sony PCLK-XX"},
+ {0x54c, 0x36, "Sony (unknown model)"},
+ {0x54c, 0x75, "Sony MZ-N1"},
+ {0x54c, 0x7c, "Sony (unknown model)"},
+ {0x54c, 0x80, "Sony LAM-1"},
+ {0x54c, 0x81, "Sony MDS-JE780/JB980"},
+ {0x54c, 0x84, "Sony MZ-N505"},
+ {0x54c, 0x85, "Sony MZ-S1"},
+ {0x54c, 0x86, "Sony MZ-N707"},
+ {0x54c, 0x8e, "Sony CMT-C7NT"},
+ {0x54c, 0x97, "Sony PCGA-MDN1"},
+ {0x54c, 0xad, "Sony CMT-L7HD"},
+ {0x54c, 0xc6, "Sony MZ-N10"},
+ {0x54c, 0xc7, "Sony MZ-N910"},
+ {0x54c, 0xc8, "Sony MZ-N710/NE810/NF810"},
+ {0x54c, 0xc9, "Sony MZ-N510/NF610"},
+ {0x54c, 0xca, "Sony MZ-NE410/DN430/NF520"},
+ {0x54c, 0xeb, "Sony MZ-NE810/NE910"},
+ {0x54c, 0xe7, "Sony CMT-M333NT/M373NT"},
+ {0x54c, 0x101, "Sony LAM-10"},
+ {0x54c, 0x113, "Aiwa AM-NX1"},
+ {0x54c, 0x14c, "Aiwa AM-NX9"},
+ {0x54c, 0x17e, "Sony MZ-NH1"},
+ {0x54c, 0x180, "Sony MZ-NH3D"},
+ {0x54c, 0x182, "Sony MZ-NH900"},
+ {0x54c, 0x184, "Sony MZ-NH700/800"},
+ {0x54c, 0x186, "Sony MZ-NH600/600D"},
+ {0x54c, 0x188, "Sony MZ-N920"},
+ {0x54c, 0x18a, "Sony LAM-3"},
+ {0x54c, 0x1e9, "Sony MZ-DH10P"},
+ {0x54c, 0x219, "Sony MZ-RH10"},
+ {0x54c, 0x21b, "Sony MZ-RH910"},
+ {0x54c, 0x21d, "Sony CMT-AH10"},
+ {0x54c, 0x22c, "Sony CMT-AH10"},
+ {0x54c, 0x23c, "Sony DS-HMD1"},
+ {0x54c, 0x286, "Sony MZ-RH1"},
+
+ {0x4dd, 0x7202, "Sharp IM-MT880H/MT899H"},
+ {0x4dd, 0x9013, "Sharp IM-DR400/DR410"},
+ {0x4dd, 0x9014, "Sharp IM-DR80/DR420/DR580 or Kenwood DMC-S9NET"},
+
+ {0, 0, NULL} /* terminating pair */
};
@@ -102,6 +102,7 @@ netmd_error netmd_init(netmd_device **device_list)
new_device = malloc(sizeof(netmd_device));
new_device->usb_dev = list[i];
new_device->link = *device_list;
+ new_device->model = known_devices[count].model;
*device_list = new_device;
}
}
diff --git a/libnetmd/netmd_dev.h b/libnetmd/netmd_dev.h
index ba6cea5..0ccff55 100644
--- a/libnetmd/netmd_dev.h
+++ b/libnetmd/netmd_dev.h
@@ -7,6 +7,7 @@
typedef struct netmd_device {
struct netmd_device *link;
char name[32];
+ char *model;
struct libusb_device *usb_dev;
} netmd_device;
@@ -16,6 +17,7 @@ typedef struct netmd_device {
struct netmd_devices {
int idVendor;
int idProduct;
+ char *model;
};
/**
diff --git a/netmdcli/netmdcli.c b/netmdcli/netmdcli.c
index b4e0ee3..5090243 100644
--- a/netmdcli/netmdcli.c
+++ b/netmdcli/netmdcli.c
@@ -210,6 +210,7 @@ int main(int argc, char* argv[])
return -1;
}
printf("%s\n", name);
+ printf("%s\n", netmd->model);
netmd_initialize_disc_info(devh, md);
printf("Disc Title: %s\n\n", md->groups[0].name);
--
1.7.6.msysgit.0