Esempio n. 1
0
void 
Favorite::setLmID( uint32 lmID, const char* imeiCrcHex ) {

   // Convert and concatenate the new imei lmid to set in the
   // infovec
   char tmpID[9];
   sprintf(tmpID, "%x", lmID);
   char complete[17];
   strcpy(complete, imeiCrcHex);
   strcat(complete, tmpID);

   InfoVect::const_iterator it; 
   for (it = m_infos.begin(); it != m_infos.end(); ++it) {
      if (strcmp((*it)->getKey(), "lmid") == 0 &&
          strncmp(imeiCrcHex, (*it)->getValue(), strlen(imeiCrcHex)) == 0) {
         // Found a lmid key, check the value
         // Found a matching imei, check the lmID
         (*it)->setValue(complete);
         break;
      }
   }
   if (it == m_infos.end()) {
      // Didnt find the lmid in the m_infos, add it to the vector.
      AdditionalInfo* info = new AdditionalInfo("lmid", complete, GuiProtEnums::dont_show);
      addAdditionalInfo(info);
   }
   m_lmID = lmID;
}
Esempio n. 2
0
Favorite::Favorite(int32 lat, int32 lon,
                   const char* name, const char* shortName, 
                   const char* description, const char* category,
                   const char* mapIconName, bool synced,
                   uint32 lmID, const char* imeiCrcHex,
                   const char* lmsID, const uint8* md5sum)
{
   initMembers();

   m_lat = lat;
   m_lon = lon;
   m_name        = strdup_new(name);
   m_shortName   = strdup_new(shortName);
   m_description = strdup_new(description);
   m_category    = strdup_new(category);
   m_mapIconName = strdup_new(mapIconName);
   m_lmID        = lmID;    
   if (imeiCrcHex && lmID != MAX_UINT32) {
      char tmpID[9];
      sprintf(tmpID, "%x", lmID);
      char complete[17];
      strcpy(complete, imeiCrcHex);
      strcat(complete, tmpID);
      AdditionalInfo* info = new AdditionalInfo("lmid", complete, GuiProtEnums::dont_show);
      addAdditionalInfo(info);
   }
   m_lmsID       = strdup_new(lmsID);

   m_md5sum = new uint8[MAX_SIZE_MD5SUM];
   if (md5sum != NULL) {
      memcpy(m_md5sum, md5sum, MAX_SIZE_MD5SUM);
   } else {
      memset(m_md5sum, '0', MAX_SIZE_MD5SUM);
   }

   m_synced = synced;
}
Esempio n. 3
0
   QList<DiskDevice *> enumerateDevice()
   {
       QList<DiskDevice *> devices;
       utils::writeLog("Enumerating imageable devices for OSX");
       QProcess process;
       QStringList lines;
       process.setEnvironment(QStringList() << "LANG=C");
       process.start("/usr/sbin/diskutil", QStringList() << "list", QIODevice::ReadWrite | QIODevice::Text);
       if (! process.waitForFinished())
           utils::writeLog("Could not execute diskutil to enumerate devices");
       else
       {
           QTextStream stdoutStream(process.readAllStandardOutput());
           while (true)
           {
               QString line = stdoutStream.readLine().simplified(); /* Remove trailing and leading ws */
               if (line.isNull())
                   break;
               /* The line holding the device is the only line always starting with 0: */
               else if (line.startsWith("0:"))
               {
                   lines << line;
               }
           }
           for (int i = 0; i < lines.count(); i++)
           {
               QString line = lines.at(i);
               QStringList deviceAttr = line.split(" ");

               /*
                * THE FOLLOWING LIST CHANGES IF THE DISK WAS NOT INITIALISED
                * In that case, <partition schema name> is missing and the
                * index for the following elements has to be adressed by n-1
                * content is now:
                * [0] 0:
                * [1] <partition scheme name>
                * [2] <total_size>
                * [3] <size_unit>
                * [4] device name (disk0, disk1, etc)
                */
               QString deviceSpace;
               QString devicePath("/dev/");
               if (deviceAttr.at(1).startsWith("*"))
               {
                   /* partition schema name was missing - uninitialised disk */
                   deviceSpace = deviceAttr.at(1) + " " + deviceAttr.at(2);
                   devicePath += (new QString(deviceAttr.at(3)))->replace(0, 1, "rd");
               } else
               {
                   deviceSpace = deviceAttr.at(2) + " " + deviceAttr.at(3);
                   QString deviceName(deviceAttr.at(4));
                   /* make the disk become a rdisk */
                   devicePath += deviceName.replace(0, 1, "rd");
               }

               deviceSpace.remove("*");
               DiskDevice *nd = new DiskDevice(i, devicePath, deviceSpace);
               utils::writeLog("=================================================");
               utils::writeLog("Starting to parse " + devicePath + " for additional info\n");
               nd = addAdditionalInfo(nd);

               if (nd->getIsWritable())
               {
                   utils::writeLog("Parsed device as writable. Appending.");
                   devices.append(nd);
               }
               else
               {
                   utils::writeLog("Parsed device as NON-writable. NOT Appending.");
               }
               utils::writeLog("\n");
               utils::writeLog("Finished parsing additional info for " + devicePath);
               utils::writeLog("=================================================\n");
           }
       }
       return devices;
   }