Diffstat (limited to 'libopie2/opiecore/device/odevice_zaurus.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie2/opiecore/device/odevice_zaurus.cpp | 61 |
1 files changed, 23 insertions, 38 deletions
diff --git a/libopie2/opiecore/device/odevice_zaurus.cpp b/libopie2/opiecore/device/odevice_zaurus.cpp index e8b813e..6ac3157 100644 --- a/libopie2/opiecore/device/odevice_zaurus.cpp +++ b/libopie2/opiecore/device/odevice_zaurus.cpp @@ -114,38 +114,30 @@ struct z_button z_buttons_c700 [] = { // Zaurus models (concerning apm, backlight, buttons, etc.) // // Comments? - mickeyl. -void Zaurus::init(const QString&) +void Zaurus::init(const QString& cpu_info) +{ + // generic distribution code already scanned /etc/issue at that point - + // embedix releases contain "Embedix <version> | Linux for Embedded Devices" + if ( d->m_sysverstr.contains( "embedix", false ) ) { d->m_vendorstr = "Sharp"; d->m_vendor = Vendor_Sharp; - m_embedix = true; // Not openzaurus means: It has an embedix kernel ! - - // QFile f ( "/proc/filesystems" ); - QString model; - - // It isn't a good idea to check the system configuration to - // detect the distribution ! - // Otherwise it may happen that any other distribution is detected as openzaurus, just - // because it uses a jffs2 filesystem.. - // (eilers) - // if ( f. open ( IO_ReadOnly ) && ( QTextStream ( &f ). read(). find ( "\tjffs2\n" ) >= 0 )) { - QFile f ("/etc/oz_version"); - if ( f.exists() ){ + d->m_systemstr = "Zaurus"; + d->m_system = System_Zaurus; + m_embedix = true; + } + else + { d->m_vendorstr = "OpenZaurus Team"; d->m_systemstr = "OpenZaurus"; d->m_system = System_OpenZaurus; + // sysver already gathered - if ( f. open ( IO_ReadOnly )) { - QTextStream ts ( &f ); - d->m_sysverstr = ts. readLine();//. mid ( 10 ); - f. close(); - } - - // Openzaurus sometimes uses the embedix kernel! - // => Check whether this is an embedix kernel + // Openzaurus sometimes uses the embedix kernel, check if this is one FILE *uname = popen("uname -r", "r"); + QFile f; QString line; if ( f.open(IO_ReadOnly, uname) ) { QTextStream ts ( &f ); line = ts. readLine(); @@ -157,25 +149,16 @@ void Zaurus::init(const QString&) f. close(); } pclose(uname); } - else { - d->m_systemstr = "Zaurus"; - d->m_system = System_Zaurus; - } - f. setName ( "/proc/cpuinfo" ); - if ( f. open ( IO_ReadOnly ) ) { - QTextStream ts ( &f ); - QString line; - while( line = ts. readLine() ) { - if ( line. left ( 8 ) == "Hardware" ) - break; - } - int loc = line. find ( ":" ); + // check the Zaurus model + QString model; + int loc = cpu_info.find( ":" ); if ( loc != -1 ) - model = line. mid ( loc + 2 ). simplifyWhiteSpace( ); - } + model = cpu_info.mid( loc+2 ).simplifyWhiteSpace(); + else + model = cpu_info; if ( model == "SHARP Corgi" ) { d->m_model = Model_Zaurus_SLC7x0; d->m_modelstr = "Zaurus SL-C700"; @@ -192,11 +175,13 @@ void Zaurus::init(const QString&) d->m_model = Model_Zaurus_SL5500; d->m_modelstr = "Zaurus SL-5500 or SL-5000d"; } else { d->m_model = Model_Zaurus_SL5500; - d->m_modelstr = "Zaurus (Model unknown)"; + d->m_modelstr = "Unkown Zaurus"; } + // set initial rotation + bool flipstate = false; switch ( d->m_model ) { case Model_Zaurus_SLA300: d->m_rotation = Rot0; |