diff options
Diffstat (limited to 'libLumina')
-rw-r--r-- | libLumina/LuminaOS-Linux.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/libLumina/LuminaOS-Linux.cpp b/libLumina/LuminaOS-Linux.cpp index af8c740f..bdd16fac 100644 --- a/libLumina/LuminaOS-Linux.cpp +++ b/libLumina/LuminaOS-Linux.cpp @@ -26,9 +26,25 @@ QString LOS::QtConfigShortcut(){ return "/usr/bin/qtconfig-qt4"; } //qtconfig bi QStringList LOS::ExternalDevicePaths(){ //Returns: QStringList[<type>::::<filesystem>::::<path>] //Note: <type> = [USB, HDRIVE, DVD, SDCARD, UNKNOWN] - - //Not implemented yet for Linux - return QStringList(); + QStringList devs = LUtils::getCmdOutput("mount"); + //Now check the output + for(int i=0; i<devs.length(); i++){ + if(devs[i].startsWith("/dev/")){ + QString type = devs[i].section(" on ",0,0); + type.remove("/dev/"); + //Determine the type of hardware device based on the dev node + if(type.startsWith("sd")){ type = "HDRIVE"; } + else if(type.startsWith("sr")){ type="DVD"; } + else{ type = "UNKNOWN"; } + //Now put the device in the proper output format + devs[i] = type+"::::"+devs[i].section("(",1,1).section(",",0,0)+"::::"+devs[i].section(" on ",1,50).section("(",0,0).simplified(); + }else{ + //invalid device - remove it from the list + devs.removeAt(i); + i--; + } + } + return devs; } //Read screen brightness information |