summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJörg Hohensohn <hohensoh@rockbox.org>2004-06-20 16:34:29 +0000
committerJörg Hohensohn <hohensoh@rockbox.org>2004-06-20 16:34:29 +0000
commit74eb64257ace75c290e7eb504774a39764529d1d (patch)
tree6ccbbedbe447f53450a70c0135f8722cae5ef888
parent4b6e00d4c9dd886011b64cb18684cb4916b89a13 (diff)
downloadrockbox-74eb64257ace75c290e7eb504774a39764529d1d.tar.gz
rockbox-74eb64257ace75c290e7eb504774a39764529d1d.zip
infrastructure for sorting by date+time, now we "only" need to decide on the UI
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4778 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/tree.c1
-rw-r--r--apps/tree.h1
-rw-r--r--firmware/common/dir.c2
-rw-r--r--firmware/include/dir.h2
-rw-r--r--uisimulator/common/io.c2
5 files changed, 8 insertions, 0 deletions
diff --git a/apps/tree.c b/apps/tree.c
index 8aa7eb0815..09391b31b6 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -391,6 +391,7 @@ struct entry* load_and_sort_directory(char *dirname, int *dirfilter,
391 break; 391 break;
392 } 392 }
393 dptr->name = &name_buffer[name_buffer_length]; 393 dptr->name = &name_buffer[name_buffer_length];
394 dptr->time_write = entry->wrtdate<<16 | entry->wrttime; /* in one # */
394 strcpy(dptr->name,entry->d_name); 395 strcpy(dptr->name,entry->d_name);
395 name_buffer_length += len + 1; 396 name_buffer_length += len + 1;
396 397
diff --git a/apps/tree.h b/apps/tree.h
index 367a4fad00..a0015b6e76 100644
--- a/apps/tree.h
+++ b/apps/tree.h
@@ -23,6 +23,7 @@
23 23
24struct entry { 24struct entry {
25 short attr; /* FAT attributes + file type flags */ 25 short attr; /* FAT attributes + file type flags */
26 unsigned long time_write; /* Last write time */
26 char *name; 27 char *name;
27}; 28};
28 29
diff --git a/firmware/common/dir.c b/firmware/common/dir.c
index 27666d26e9..1bad9327f6 100644
--- a/firmware/common/dir.c
+++ b/firmware/common/dir.c
@@ -113,6 +113,8 @@ struct dirent* readdir(DIR* dir)
113 theent->attribute = entry.attr; 113 theent->attribute = entry.attr;
114 theent->size = entry.filesize; 114 theent->size = entry.filesize;
115 theent->startcluster = entry.firstcluster; 115 theent->startcluster = entry.firstcluster;
116 theent->wrtdate = entry.wrtdate;
117 theent->wrttime = entry.wrttime;
116 118
117 return theent; 119 return theent;
118} 120}
diff --git a/firmware/include/dir.h b/firmware/include/dir.h
index ae0aa29cff..00c6664872 100644
--- a/firmware/include/dir.h
+++ b/firmware/include/dir.h
@@ -36,6 +36,8 @@ struct dirent {
36 int attribute; 36 int attribute;
37 int size; 37 int size;
38 int startcluster; 38 int startcluster;
39 unsigned short wrtdate; /* Last write date */
40 unsigned short wrttime; /* Last write time */
39}; 41};
40#endif 42#endif
41 43
diff --git a/uisimulator/common/io.c b/uisimulator/common/io.c
index b691af972a..e5b2f9228d 100644
--- a/uisimulator/common/io.c
+++ b/uisimulator/common/io.c
@@ -114,6 +114,8 @@ struct sim_dirent *sim_readdir(MYDIR *dir)
114 114
115 secret.attribute = S_ISDIR(s.st_mode)?ATTR_DIRECTORY:0; 115 secret.attribute = S_ISDIR(s.st_mode)?ATTR_DIRECTORY:0;
116 secret.size = s.st_size; 116 secret.size = s.st_size;
117 secret.wrtdate = (unsigned short)(s.st_mtime >> 16);
118 secret.wrttime = (unsigned short)(s.st_mtime & 0xFFFF);
117 119
118 return &secret; 120 return &secret;
119} 121}