cinera: Code clean-up
• Make vod_platform an enum • Unionise config_int_pair and config_bool_pair in config_pair
This commit is contained in:
parent
744515dac4
commit
e39a09c0ad
|
@ -23,7 +23,7 @@ typedef struct
|
||||||
version CINERA_APP_VERSION = {
|
version CINERA_APP_VERSION = {
|
||||||
.Major = 0,
|
.Major = 0,
|
||||||
.Minor = 8,
|
.Minor = 8,
|
||||||
.Patch = 22
|
.Patch = 23
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <stdarg.h> // NOTE(matt): varargs
|
#include <stdarg.h> // NOTE(matt): varargs
|
||||||
|
@ -69,6 +69,9 @@ typedef uint64_t bool;
|
||||||
#define TRUE 1
|
#define TRUE 1
|
||||||
#define FALSE 0
|
#define FALSE 0
|
||||||
|
|
||||||
|
#define SECONDS_PER_HOUR 3600
|
||||||
|
#define SECONDS_PER_MINUTE 60
|
||||||
|
|
||||||
#define enum8(type) int8_t
|
#define enum8(type) int8_t
|
||||||
#define enum16(type) int16_t
|
#define enum16(type) int16_t
|
||||||
#define enum32(type) int32_t
|
#define enum32(type) int32_t
|
||||||
|
@ -2407,6 +2410,54 @@ GetIconTypeFromString(string *Filename, token *T)
|
||||||
return NS_COUNT;
|
return NS_COUNT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *VODPlatformStrings[] =
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
"youtube",
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
VP_DEFAULT_UNSET,
|
||||||
|
VP_YOUTUBE,
|
||||||
|
VP_COUNT,
|
||||||
|
} vod_platform;
|
||||||
|
|
||||||
|
vod_platform
|
||||||
|
GetVODPlatformFromString(string *Filename, token *T)
|
||||||
|
{
|
||||||
|
for(int i = 0; i < VP_COUNT; ++i)
|
||||||
|
{
|
||||||
|
if(!StringsDifferLv0(T->Content, VODPlatformStrings[i])) { return i; }
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigError(Filename, T->LineNumber, S_ERROR, "Unknown vod_platform: ", &T->Content);
|
||||||
|
fprintf(stderr, " Valid vod_platforms:\n");
|
||||||
|
int FirstValidVODPlatform = 1;
|
||||||
|
for(int i = FirstValidVODPlatform; i < VP_COUNT; ++i)
|
||||||
|
{
|
||||||
|
fprintf(stderr, " %s\n", VODPlatformStrings[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return VP_COUNT;
|
||||||
|
}
|
||||||
|
|
||||||
|
vod_platform
|
||||||
|
GetVODPlatform(string VODPlatform)
|
||||||
|
{
|
||||||
|
for(int i = 0; i < VP_COUNT; ++i)
|
||||||
|
{
|
||||||
|
if(!StringsDifferLv0(VODPlatform, VODPlatformStrings[i])) { return i; }
|
||||||
|
}
|
||||||
|
return VP_COUNT;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
IsValidVODPlatform(vod_platform V)
|
||||||
|
{
|
||||||
|
return V > VP_DEFAULT_UNSET && V < VP_COUNT;
|
||||||
|
}
|
||||||
|
|
||||||
// DBVersion 1
|
// DBVersion 1
|
||||||
typedef struct { unsigned int DBVersion; version AppVersion; version HMMLVersion; unsigned int EntryCount; } db_header1;
|
typedef struct { unsigned int DBVersion; version AppVersion; version HMMLVersion; unsigned int EntryCount; } db_header1;
|
||||||
typedef struct { int Size; char BaseFilename[32]; } db_entry1;
|
typedef struct { int Size; char BaseFilename[32]; } db_entry1;
|
||||||
|
@ -3249,7 +3300,7 @@ typedef struct
|
||||||
char URLSearch[MAX_BASE_URL_LENGTH + 1 + MAX_RELATIVE_PAGE_LOCATION_LENGTH];
|
char URLSearch[MAX_BASE_URL_LENGTH + 1 + MAX_RELATIVE_PAGE_LOCATION_LENGTH];
|
||||||
char URLPlayer[MAX_BASE_URL_LENGTH + 1 + MAX_RELATIVE_PAGE_LOCATION_LENGTH + 1 + MAX_BASE_FILENAME_LENGTH];
|
char URLPlayer[MAX_BASE_URL_LENGTH + 1 + MAX_RELATIVE_PAGE_LOCATION_LENGTH + 1 + MAX_BASE_FILENAME_LENGTH];
|
||||||
char VideoID[MAX_VOD_ID_LENGTH];
|
char VideoID[MAX_VOD_ID_LENGTH];
|
||||||
char VODPlatform[16];
|
vod_platform VODPlatform;
|
||||||
} buffers;
|
} buffers;
|
||||||
|
|
||||||
rc
|
rc
|
||||||
|
@ -4148,9 +4199,6 @@ InitTemplate(template *Template, string Location, template_type Type)
|
||||||
Template->Metadata.NavBuffer = InitBook(sizeof(navigation_buffer), 4);
|
Template->Metadata.NavBuffer = InitBook(sizeof(navigation_buffer), 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SECONDS_PER_HOUR 3600
|
|
||||||
#define SECONDS_PER_MINUTE 60
|
|
||||||
|
|
||||||
v3
|
v3
|
||||||
V3(int A, int B, int C)
|
V3(int A, int B, int C)
|
||||||
{
|
{
|
||||||
|
@ -9156,13 +9204,13 @@ ExamineDB(void)
|
||||||
DeclaimMenuBuffers(&MenuBuffers)
|
DeclaimMenuBuffers(&MenuBuffers)
|
||||||
|
|
||||||
bool
|
bool
|
||||||
VideoIsPrivate(string VODPlatform, char *VideoID)
|
VideoIsPrivate(vod_platform VODPlatform, char *VideoID)
|
||||||
{
|
{
|
||||||
// TODO(matt): Redo this to only return once, at the end
|
// TODO(matt): Redo this to only return once, at the end
|
||||||
|
|
||||||
// NOTE(matt): Currently only supports YouTube
|
// NOTE(matt): Currently only supports YouTube
|
||||||
// NOTE(matt): Stack-string
|
// NOTE(matt): Stack-string
|
||||||
if(StringsMatch(Wrap0("youtube"), VODPlatform))
|
if(VODPlatform == VP_YOUTUBE)
|
||||||
{
|
{
|
||||||
char Message[128];
|
char Message[128];
|
||||||
CopyString(Message, sizeof(Message), "%sChecking%s privacy status of: https://youtube.com/watch?v=%s", ColourStrings[CS_ONGOING], ColourStrings[CS_END], VideoID);
|
CopyString(Message, sizeof(Message), "%sChecking%s privacy status of: https://youtube.com/watch?v=%s", ColourStrings[CS_ONGOING], ColourStrings[CS_END], VideoID);
|
||||||
|
@ -10240,7 +10288,7 @@ HMMLToBuffers(buffers *CollationBuffers, template *BespokeTemplate, string BaseF
|
||||||
Clear(CollationBuffers->Title, sizeof(CollationBuffers->Title));
|
Clear(CollationBuffers->Title, sizeof(CollationBuffers->Title));
|
||||||
Clear(CollationBuffers->URLPlayer, sizeof(CollationBuffers->URLPlayer));
|
Clear(CollationBuffers->URLPlayer, sizeof(CollationBuffers->URLPlayer));
|
||||||
Clear(CollationBuffers->URLSearch, sizeof(CollationBuffers->URLSearch));
|
Clear(CollationBuffers->URLSearch, sizeof(CollationBuffers->URLSearch));
|
||||||
Clear(CollationBuffers->VODPlatform, sizeof(CollationBuffers->VODPlatform));
|
CollationBuffers->VODPlatform = VP_DEFAULT_UNSET;
|
||||||
|
|
||||||
// TODO(matt): A "MakeString0OnStack()" sort of function?
|
// TODO(matt): A "MakeString0OnStack()" sort of function?
|
||||||
// NOTE(matt): Stack-string
|
// NOTE(matt): Stack-string
|
||||||
|
@ -10342,24 +10390,30 @@ HMMLToBuffers(buffers *CollationBuffers, template *BespokeTemplate, string BaseF
|
||||||
CopyString(CollationBuffers->VideoID, sizeof(CollationBuffers->VideoID), "%s", HMML.metadata.id);
|
CopyString(CollationBuffers->VideoID, sizeof(CollationBuffers->VideoID), "%s", HMML.metadata.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
string VODPlatform = {};
|
vod_platform VODPlatform = VP_DEFAULT_UNSET;
|
||||||
if(HMML.metadata.vod_platform)
|
if(HMML.metadata.vod_platform)
|
||||||
{
|
{
|
||||||
VODPlatform = Wrap0(HMML.metadata.vod_platform);
|
VODPlatform = GetVODPlatform(Wrap0(HMML.metadata.vod_platform));
|
||||||
}
|
}
|
||||||
else if(CurrentProject->VODPlatform.Length > 0)
|
if(!IsValidVODPlatform(VODPlatform) && IsValidVODPlatform(CurrentProject->VODPlatform))
|
||||||
{
|
{
|
||||||
VODPlatform = CurrentProject->VODPlatform;
|
VODPlatform = CurrentProject->VODPlatform;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(VODPlatform.Length == 0)
|
if(!IsValidVODPlatform(VODPlatform))
|
||||||
{
|
{
|
||||||
IndexingError(FilepathL, 0, S_ERROR, "The [video] node lacks an \"vod_platform\"", 0);
|
IndexingError(FilepathL, 0, S_ERROR, "The [video] node lacks a valid \"vod_platform\"", 0);
|
||||||
|
fprintf(stderr, " Valid vod_platforms:\n");
|
||||||
|
int FirstValidVODPlatform = 1;
|
||||||
|
for(int i = FirstValidVODPlatform; i < VP_COUNT; ++i)
|
||||||
|
{
|
||||||
|
fprintf(stderr, " %s\n", VODPlatformStrings[i]);
|
||||||
|
}
|
||||||
Result = RC_ERROR_HMML;
|
Result = RC_ERROR_HMML;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CopyString(CollationBuffers->VODPlatform, sizeof(CollationBuffers->VODPlatform), "%s", HMML.metadata.vod_platform);
|
CollationBuffers->VODPlatform = VODPlatform;
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer URLPlayer = {};
|
buffer URLPlayer = {};
|
||||||
|
@ -11627,7 +11681,7 @@ BuffersToHTML(config *C, project *Project, buffers *CollationBuffers, template *
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TAG_VIDEO_ID: CopyStringToBufferNoFormat(&Master, Wrap0i(CollationBuffers->VideoID, sizeof(CollationBuffers->VideoID))); break;
|
case TAG_VIDEO_ID: CopyStringToBufferNoFormat(&Master, Wrap0i(CollationBuffers->VideoID, sizeof(CollationBuffers->VideoID))); break;
|
||||||
case TAG_VOD_PLATFORM: CopyStringToBufferNoFormat(&Master, Wrap0i(CollationBuffers->VODPlatform, sizeof(CollationBuffers->VODPlatform))); break;
|
case TAG_VOD_PLATFORM: CopyStringToBufferNoFormat(&Master, Wrap0(VODPlatformStrings[CollationBuffers->VODPlatform])); break;
|
||||||
case TAG_SEARCH:
|
case TAG_SEARCH:
|
||||||
{
|
{
|
||||||
/* */ MEM_TEST_MID("BuffersToHTML()");
|
/* */ MEM_TEST_MID("BuffersToHTML()");
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue