diff options
Diffstat (limited to 'simulator/app/PhoneCollection.cpp')
| -rw-r--r-- | simulator/app/PhoneCollection.cpp | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/simulator/app/PhoneCollection.cpp b/simulator/app/PhoneCollection.cpp deleted file mode 100644 index 5cddfa8b3..000000000 --- a/simulator/app/PhoneCollection.cpp +++ /dev/null @@ -1,174 +0,0 @@ -// -// Copyright 2005 The Android Open Source Project -// -// Our collection of devices. -// - -// For compilers that support precompilation, include "wx/wx.h". -#include "wx/wxprec.h" - -// Otherwise, include all standard headers -#ifndef WX_PRECOMP -# include "wx/wx.h" -#endif -//#include "wx/image.h" // needed for Windows build - - -#include "PhoneCollection.h" -#include "PhoneData.h" -#include "MyApp.h" - -#include <utils.h> - -#include <stdlib.h> -#include <unistd.h> -#include <stdio.h> -#include <string.h> -#include <sys/types.h> -#include <dirent.h> -#include <assert.h> - -using namespace android; - -/*static*/ PhoneCollection* PhoneCollection::mpInstance = NULL; - -/*static*/ const char* PhoneCollection::kLayoutFile = "layout.xml"; - - -/* - * (Re-)scan the specified directory for phones. We register a hit if we can - * see a file called "<directory>/layout.xml". - */ -void PhoneCollection::ScanForPhones(const char* directory) -{ - /* - * Scan through the directory and find everything that looks like it - * might hold phone data. - */ - StringArray strArr; - -#ifdef BEFORE_ASSET - DIR* dirp; - struct dirent* entp; - - dirp = opendir(directory); - if (dirp == NULL) { - char buf[512]; - fprintf(stderr, "ERROR: unable to scan directory '%s' for phone data\n", - directory); - fprintf(stderr, "Current dir is %s\n", getcwd(buf, sizeof(buf))); - return; - } - - while (1) { - wxString dirName; - wxString fileName; - - entp = readdir(dirp); - if (entp == NULL) - break; // done with scan - dirName = directory; - dirName += '/'; - dirName += entp->d_name; - fileName = dirName; - fileName += '/'; - fileName += kLayoutFile; - - if (access(fileName, R_OK) == 0) { - strArr.push_back(dirName); - //printf("--- examining '%s'\n", (const char*) fileName); - } - } - closedir(dirp); -#else - android::AssetManager* pAssetMgr = ((MyApp*)wxTheApp)->GetAssetManager(); - android::AssetDir* pDir; - int i, count; - - pDir = pAssetMgr->openDir(""); - assert(pDir != NULL); - count = pDir->getFileCount(); - - for (i = 0; i < count; i++) { - android::String8 layoutPath; - - if (pDir->getFileType(i) != kFileTypeDirectory) - continue; - - layoutPath = pDir->getFileName(i); - layoutPath.appendPath(kLayoutFile); - - if (pAssetMgr->getFileType(layoutPath.string()) == kFileTypeRegular) { - strArr.push_back(pDir->getFileName(i).string()); - printf("--- examining '%s'\n", layoutPath.string()); - } - } - - delete pDir; -#endif - - if (strArr.size() == 0) { - fprintf(stderr, "ERROR: no phone data found in '%s'\n", directory); - return; - } - - /* - * Found some candidates. If they parse successfully, add them to - * our list. - * - * We sort them first, because it's nice when everybody's user - * interface looks the same. Note we're sorting the directory name, - * so it's possible to define a sort order in the filesystem that - * doesn't require messing up the phone's title string. - */ - mPhoneList.clear(); - strArr.sort(StringArray::cmpAscendingAlpha); - - for (int i = 0; i < strArr.size(); i++) { - PhoneData tmpPhone; - - if (!tmpPhone.Create(strArr.getEntry(i))) { - fprintf(stderr, "Sim: Abandoning phone '%s'\n", strArr.getEntry(i)); - //strArr.erase(i); - //i--; - } else { - if (GetPhoneData(tmpPhone.GetName()) != NULL) { - fprintf(stderr, "Sim: ERROR: duplicate name '%s' in '%s'\n", - tmpPhone.GetName(), strArr.getEntry(i)); - } else { - mPhoneList.push_back(tmpPhone); - } - } - } -} - - -/* - * Return the Nth member of the phone data array. (Replace w/Vector.) - */ -PhoneData* PhoneCollection::GetPhoneData(int idx) -{ - typedef List<PhoneData>::iterator Iter; - - for (Iter ii = mPhoneList.begin(); ii != mPhoneList.end(); ++ii) { - if (idx == 0) - return &(*ii); - --idx; - } - return NULL; -} - -/* - * Return the entry whose phone data name matches "name". - */ -PhoneData* PhoneCollection::GetPhoneData(const char* name) -{ - typedef List<PhoneData>::iterator Iter; - - for (Iter ii = mPhoneList.begin(); ii != mPhoneList.end(); ++ii) { - if (strcasecmp((*ii).GetName(), name) == 0) - return &(*ii); - } - return NULL; -} - |
