Includes library modifications to allow access to AIN_4 (AIN_0 / 5)

Committer:
bryantaylor
Date:
Tue Sep 20 21:26:12 2016 +0000
Revision:
0:eafc3fd41f75
hackathon

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bryantaylor 0:eafc3fd41f75 1 /* mbed Microcontroller Library
bryantaylor 0:eafc3fd41f75 2 * Copyright (c) 2006-2013 ARM Limited
bryantaylor 0:eafc3fd41f75 3 *
bryantaylor 0:eafc3fd41f75 4 * Licensed under the Apache License, Version 2.0 (the "License");
bryantaylor 0:eafc3fd41f75 5 * you may not use this file except in compliance with the License.
bryantaylor 0:eafc3fd41f75 6 * You may obtain a copy of the License at
bryantaylor 0:eafc3fd41f75 7 *
bryantaylor 0:eafc3fd41f75 8 * http://www.apache.org/licenses/LICENSE-2.0
bryantaylor 0:eafc3fd41f75 9 *
bryantaylor 0:eafc3fd41f75 10 * Unless required by applicable law or agreed to in writing, software
bryantaylor 0:eafc3fd41f75 11 * distributed under the License is distributed on an "AS IS" BASIS,
bryantaylor 0:eafc3fd41f75 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
bryantaylor 0:eafc3fd41f75 13 * See the License for the specific language governing permissions and
bryantaylor 0:eafc3fd41f75 14 * limitations under the License.
bryantaylor 0:eafc3fd41f75 15 */
bryantaylor 0:eafc3fd41f75 16 #include "FilePath.h"
bryantaylor 0:eafc3fd41f75 17
bryantaylor 0:eafc3fd41f75 18 namespace mbed {
bryantaylor 0:eafc3fd41f75 19
bryantaylor 0:eafc3fd41f75 20 FilePath::FilePath(const char* file_path) : file_name(NULL), fb(NULL) {
bryantaylor 0:eafc3fd41f75 21 if ((file_path[0] != '/') || (file_path[1] == 0)) return;
bryantaylor 0:eafc3fd41f75 22
bryantaylor 0:eafc3fd41f75 23 const char* file_system = &file_path[1];
bryantaylor 0:eafc3fd41f75 24 file_name = file_system;
bryantaylor 0:eafc3fd41f75 25 int len = 0;
bryantaylor 0:eafc3fd41f75 26 while (true) {
bryantaylor 0:eafc3fd41f75 27 char c = *file_name;
bryantaylor 0:eafc3fd41f75 28 if (c == '/') { // end of object name
bryantaylor 0:eafc3fd41f75 29 file_name++; // point to one char after the '/'
bryantaylor 0:eafc3fd41f75 30 break;
bryantaylor 0:eafc3fd41f75 31 }
bryantaylor 0:eafc3fd41f75 32 if (c == 0) { // end of object name, with no filename
bryantaylor 0:eafc3fd41f75 33 break;
bryantaylor 0:eafc3fd41f75 34 }
bryantaylor 0:eafc3fd41f75 35 len++;
bryantaylor 0:eafc3fd41f75 36 file_name++;
bryantaylor 0:eafc3fd41f75 37 }
bryantaylor 0:eafc3fd41f75 38
bryantaylor 0:eafc3fd41f75 39 fb = FileBase::lookup(file_system, len);
bryantaylor 0:eafc3fd41f75 40 }
bryantaylor 0:eafc3fd41f75 41
bryantaylor 0:eafc3fd41f75 42 const char* FilePath::fileName(void) {
bryantaylor 0:eafc3fd41f75 43 return file_name;
bryantaylor 0:eafc3fd41f75 44 }
bryantaylor 0:eafc3fd41f75 45
bryantaylor 0:eafc3fd41f75 46 bool FilePath::isFileSystem(void) {
bryantaylor 0:eafc3fd41f75 47 if (NULL == fb)
bryantaylor 0:eafc3fd41f75 48 return false;
bryantaylor 0:eafc3fd41f75 49 return (fb->getPathType() == FileSystemPathType);
bryantaylor 0:eafc3fd41f75 50 }
bryantaylor 0:eafc3fd41f75 51
bryantaylor 0:eafc3fd41f75 52 FileSystemLike* FilePath::fileSystem(void) {
bryantaylor 0:eafc3fd41f75 53 if (isFileSystem()) {
bryantaylor 0:eafc3fd41f75 54 return (FileSystemLike*)fb;
bryantaylor 0:eafc3fd41f75 55 }
bryantaylor 0:eafc3fd41f75 56 return NULL;
bryantaylor 0:eafc3fd41f75 57 }
bryantaylor 0:eafc3fd41f75 58
bryantaylor 0:eafc3fd41f75 59 bool FilePath::isFile(void) {
bryantaylor 0:eafc3fd41f75 60 if (NULL == fb)
bryantaylor 0:eafc3fd41f75 61 return false;
bryantaylor 0:eafc3fd41f75 62 return (fb->getPathType() == FilePathType);
bryantaylor 0:eafc3fd41f75 63 }
bryantaylor 0:eafc3fd41f75 64
bryantaylor 0:eafc3fd41f75 65 FileLike* FilePath::file(void) {
bryantaylor 0:eafc3fd41f75 66 if (isFile()) {
bryantaylor 0:eafc3fd41f75 67 return (FileLike*)fb;
bryantaylor 0:eafc3fd41f75 68 }
bryantaylor 0:eafc3fd41f75 69 return NULL;
bryantaylor 0:eafc3fd41f75 70 }
bryantaylor 0:eafc3fd41f75 71
bryantaylor 0:eafc3fd41f75 72 bool FilePath::exists(void) {
bryantaylor 0:eafc3fd41f75 73 return fb != NULL;
bryantaylor 0:eafc3fd41f75 74 }
bryantaylor 0:eafc3fd41f75 75
bryantaylor 0:eafc3fd41f75 76 } // namespace mbed