FireBirdLib - Topfield TMS PVR TAP Programming Library
LogEntryFBLibPrintf.c
Go to the documentation of this file.
1#include <stdio.h>
2#include <fcntl.h>
3#include <sys/stat.h>
4#include <string.h>
5#include <stdarg.h>
6#include <sys/types.h>
7#include <utime.h>
8#define FB_LOG_ENTRY_LIB_PRINTF
9#include "libFireBird.h"
10
11int vsnprintf(char *str, size_t size, const char *format, va_list ap); //define missing prototype
12
13void LogEntryFBLibPrintf(bool Console, char *format, ...)
14{
15 TRACEENTER();
16
17 char Text[512];
18 FILE *File;
19 char TimeResult[40];
20 byte Sec;
21 char CRLF[] = {'\r', '\n'};
22 struct utimbuf times;
23
24 #define FILENAME "/mnt/hd/ProgramFiles/Settings/FBLib.log"
25
26 if(!format)
27 {
28 TRACEEXIT();
29 return;
30 }
31
32 va_list args;
33 va_start(args, format);
34 vsnprintf(Text, sizeof(Text), format, args);
35 va_end(args);
36
37 mkdir("/mnt/hd/ProgramFiles/Settings", 0777);
38
39 TimeFormat(Now(&Sec), Sec, TIMESTAMP_YMDHMS, TimeResult);
40 strcat(TimeResult, " ");
41
42 if((File = fopen(FILENAME, "r+")) != NULL)
43 {
44 fseek(File, 0, SEEK_END);
45 fwrite(TimeResult, strlen(TimeResult), 1, File);
46 fwrite(Text, strlen(Text), 1, File);
47 fwrite(CRLF, 2, 1, File);
48 fclose(File);
49
50 //As the log would receive the Linux time stamp (01.01.2000), adjust to the PVR's time
51 times.actime = PvrTimeToLinux(Now(NULL));
52 times.modtime = times.actime;
53 utime(FILENAME, &times);
54 }
55
56 if(Console)
57 {
58 TAP_Print("%s FBLIB - %s\n", TimeResult, Text);
59 }
60
61 TRACEEXIT();
62}
struct __STDIO_FILE_STRUCT FILE
Definition: FBLib_hdd.h:137
void LogEntryFBLibPrintf(bool Console, char *format,...)
int vsnprintf(char *str, size_t size, const char *format, va_list ap)
#define FILENAME
dword PvrTimeToLinux(dword PVRTime)
Definition: PvrTimeToLinux.c:3
#define TAP_Print
Definition: libFireBird.h:181
char * TimeFormat(dword DateTime, byte Sec, eTimeStampFormat TimeStampFormat, char *Result)
Definition: TimeFormat.c:4
#define TRACEEXIT()
Definition: libFireBird.h:1244
@ TIMESTAMP_YMDHMS
Definition: libFireBird.h:100
#define TRACEENTER()
Definition: libFireBird.h:1243
#define SEEK_END
Definition: libFireBird.h:1883
dword Now(byte *Sec)
Definition: Now.c:3