forked from len0rd/rockbox
file name generation for recorder without RTC (Ondio)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5298 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
954e5888b1
commit
1120ef50c7
1 changed files with 41 additions and 5 deletions
|
@ -48,6 +48,7 @@
|
|||
#include "dir.h"
|
||||
#include "errno.h"
|
||||
#include "talk.h"
|
||||
#include "atoi.h"
|
||||
|
||||
#ifdef HAVE_RECORDING
|
||||
|
||||
|
@ -149,18 +150,53 @@ void adjust_cursor(void)
|
|||
char *rec_create_filename(char *buffer)
|
||||
{
|
||||
int fpos;
|
||||
struct tm *tm = get_time();
|
||||
|
||||
if(global_settings.rec_directory)
|
||||
getcwd(buffer, MAX_PATH);
|
||||
else
|
||||
strncpy(buffer, rec_base_directory, MAX_PATH);
|
||||
|
||||
/* Append filename to path: RYYMMDD-HH.MM.SS.mp3 */
|
||||
fpos = strlen(buffer);
|
||||
snprintf(&buffer[fpos], MAX_PATH-fpos, "/R%02d%02d%02d-%02d%02d%02d.mp3",
|
||||
tm->tm_year%100, tm->tm_mon+1, tm->tm_mday,
|
||||
tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||
#ifdef HAVE_RTC
|
||||
{
|
||||
struct tm *tm = get_time();
|
||||
|
||||
/* Append filename to path: RYYMMDD-HH.MM.SS.mp3 */
|
||||
snprintf(&buffer[fpos], MAX_PATH-fpos,
|
||||
"/R%02d%02d%02d-%02d%02d%02d.mp3",
|
||||
tm->tm_year%100, tm->tm_mon+1, tm->tm_mday,
|
||||
tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||
}
|
||||
#else
|
||||
{
|
||||
DIR* dir;
|
||||
int max_rec_file = 1; /* default to rec_0001.mp3 */
|
||||
dir = opendir(buffer);
|
||||
if (dir) /* found */
|
||||
{
|
||||
/* Search for the highest recording filename present,
|
||||
increment behind that. So even with "holes"
|
||||
(deleted recordings), the newest will always have the
|
||||
highest number. */
|
||||
while(true)
|
||||
{
|
||||
struct dirent* entry;
|
||||
int curr_rec_file;
|
||||
/* walk through the directory content */
|
||||
entry = readdir(dir);
|
||||
if (!entry)
|
||||
break; /* end of dir */
|
||||
if (strncasecmp(entry->d_name, "rec_", 4))
|
||||
continue; /* no recording file */
|
||||
curr_rec_file = atoi(&entry->d_name[4]);
|
||||
if (curr_rec_file >= max_rec_file)
|
||||
max_rec_file = curr_rec_file + 1;
|
||||
}
|
||||
}
|
||||
snprintf(&buffer[fpos], MAX_PATH-fpos,
|
||||
"/rec_%04d.mp3", max_rec_file);
|
||||
}
|
||||
#endif
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue