diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2007-08-23 15:24:28 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2007-08-23 15:24:28 +0000 |
commit | 1152a12d9189d8960a145066454e04d02ed4a171 (patch) | |
tree | dcb068254ed6dcd5b31764776bdce3a03da824d1 /rbutil/rbutilqt/autodetection.cpp | |
parent | c494e371c849a9275811f238211d6cf510f38e03 (diff) | |
download | rockbox-1152a12d9189d8960a145066454e04d02ed4a171.tar.gz rockbox-1152a12d9189d8960a145066454e04d02ed4a171.zip |
Add Ipod detection using ipodpatcher.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14441 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/autodetection.cpp')
-rw-r--r-- | rbutil/rbutilqt/autodetection.cpp | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/rbutil/rbutilqt/autodetection.cpp b/rbutil/rbutilqt/autodetection.cpp index 443db9b24a..e8eb498d62 100644 --- a/rbutil/rbutilqt/autodetection.cpp +++ b/rbutil/rbutilqt/autodetection.cpp | |||
@@ -31,7 +31,7 @@ bool Autodetection::detect() | |||
31 | 31 | ||
32 | // Try detection via rockbox.info | 32 | // Try detection via rockbox.info |
33 | QStringList mountpoints = getMountpoints(); | 33 | QStringList mountpoints = getMountpoints(); |
34 | 34 | ||
35 | for(int i=0; i< mountpoints.size();i++) | 35 | for(int i=0; i< mountpoints.size();i++) |
36 | { | 36 | { |
37 | QDir dir(mountpoints.at(i)); | 37 | QDir dir(mountpoints.at(i)); |
@@ -54,10 +54,19 @@ bool Autodetection::detect() | |||
54 | } | 54 | } |
55 | 55 | ||
56 | //try ipodpatcher | 56 | //try ipodpatcher |
57 | 57 | struct ipod_t ipod; | |
58 | |||
59 | int n = ipod_scan(&ipod); | ||
60 | if(n == 1) { | ||
61 | qDebug() << "Ipod found:" << ipod.modelstr << "at" << ipod.diskname; | ||
62 | m_device = ipod.targetname; | ||
63 | m_mountpoint = resolveMountPoint(ipod.diskname); | ||
64 | return true; | ||
65 | } | ||
58 | 66 | ||
59 | //try sansapatcher | 67 | //try sansapatcher |
60 | 68 | ||
69 | |||
61 | return false; | 70 | return false; |
62 | } | 71 | } |
63 | 72 | ||
@@ -96,4 +105,28 @@ QStringList Autodetection::getMountpoints() | |||
96 | #endif | 105 | #endif |
97 | } | 106 | } |
98 | 107 | ||
108 | QString Autodetection::resolveMountPoint(QString device) | ||
109 | { | ||
110 | qDebug() << "Autodetection::resolveMountPoint(QString)" << device; | ||
111 | #if defined(Q_OS_LINUX) | ||
112 | FILE *fp = fopen( "/proc/mounts", "r" ); | ||
113 | if( !fp ) return QString(""); | ||
114 | char *dev, *dir; | ||
115 | while( fscanf( fp, "%as %as %*s %*s %*s %*s", &dev, &dir ) != EOF ) | ||
116 | { | ||
117 | if( QString(dev).startsWith(device) ) | ||
118 | { | ||
119 | QString directory = dir; | ||
120 | free( dev ); | ||
121 | free( dir ); | ||
122 | return directory; | ||
123 | } | ||
124 | free( dev ); | ||
125 | free( dir ); | ||
126 | } | ||
127 | fclose( fp ); | ||
128 | |||
129 | #endif | ||
130 | return QString(""); | ||
99 | 131 | ||
132 | } | ||