CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
dirent.h-Dateireferenz
+ Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  dirent
 
struct  DIR
 

Makrodefinitionen

#define OPENDIR_FL_NONE   0x0
 
#define OPENDIR_FL_CHDK_LFN   0x1
 

Funktionen

DIRopendir (const char *name)
 
DIRopendir_chdk (const char *name, unsigned flags)
 
struct direntreaddir (DIR *)
 
int closedir (DIR *)
 

Makro-Dokumentation

#define OPENDIR_FL_CHDK_LFN   0x1

Definiert in Zeile 28 der Datei dirent.h.

#define OPENDIR_FL_NONE   0x0

Definiert in Zeile 27 der Datei dirent.h.

Dokumentation der Funktionen

int closedir ( DIR )

Definiert in Zeile 119 der Datei lib_thumb.c.

120 {
121  int rv = -1;
122  if (d && d->cam_DIR)
123  {
124 #if defined(CAM_DRYOS)
125  if (d->fw_dir == 0)
126  {
127  rv = CHDKCloseDir(d->cam_DIR);
128  }
129  else
130 #endif
131  rv = fw_closedir(d->cam_DIR);
132 
133  // Mark closed (just in case)
134  d->cam_DIR = 0;
135  // Free allocated memory
136  free(d);
137  }
138  return rv;
139 }
DIR* opendir ( const char *  name)

Definiert in Zeile 20 der Datei lib_thumb.c.

21 {
22  return opendir_chdk(name,OPENDIR_FL_NONE);
23 }
DIR* opendir_chdk ( const char *  name,
unsigned  flags 
)

Definiert in Zeile 25 der Datei lib_thumb.c.

26 {
27  // Create CHDK DIR structure
28  DIR *dir = malloc(sizeof(DIR));
29  // If malloc failed return failure
30  if (dir == 0) return NULL;
31 
32 #if defined(CAM_DRYOS)
33  extern int get_fstype(void);
34  // try built-in routine first, but only on FAT
35  if ((get_fstype() < 4) && (flags & OPENDIR_FL_CHDK_LFN))
36  {
37  dir->fw_dir = 0;
38  dir->cam_DIR = CHDKOpenDir(name);
39  }
40  else
41  {
42  dir->cam_DIR = NULL;
43  }
44  if (!dir->cam_DIR)
45  {
46  // try firmware routine if built-in failed
47  dir->fw_dir = 1;
48  dir->cam_DIR = fw_opendir(name);
49  }
50 #else
51  (void)flags;
52  dir->cam_DIR = fw_opendir(name);
53 #endif
54 
55  // Init readdir return value
56  dir->dir.d_name[0] = 0;
57 
58  // If failed clean up and return failure
59  if (!dir->cam_DIR)
60  {
61  free(dir);
62  return NULL;
63  }
64 
65  return dir;
66 }
struct dirent* readdir ( DIR )

Definiert in Zeile 76 der Datei lib_thumb.c.

77 {
78  if (d && d->cam_DIR)
79  {
80  // Get next entry from firmware function
81  extern void *fw_readdir(void *d);
82  struct __dirent *de = fw_readdir(d->cam_DIR);
83  // Return next directory name if present, else return 0 (end of list)
84  if (de)
85  {
86  strcpy(d->dir.d_name,de->d_name);
87  return &d->dir;
88  }
89  else
90  {
91  d->dir.d_name[0] = 0;
92  }
93  }
94  return NULL;
95 }