}
const char *MWindow::default_std()
{
- int fd, i, l = 0;
- char buf[BCTEXTLEN];
- char *p;
+ char buf[BCTEXTLEN], *p = 0;
- if((fd = open(TIMEZONE_NAME, O_RDONLY)) >= 0)
- {
- l = read(fd, buf, BCTEXTLEN);
+ int fd = open(TIMEZONE_NAME, O_RDONLY);
+ if( fd >= 0 ) {
+ int l = read(fd, buf, sizeof(buf)-1);
close(fd);
- if(l > 0)
- {
+ if( l > 0 ) {
+ if( buf[l-1] == '\n' ) --l;
buf[l] = 0;
- if(buf[l - 1] == '\n')
- buf[--l] = 0;
+ p = buf;
}
- p = buf;
}
- if(l < 1)
- {
- if((l = readlink(LOCALTIME_LINK, buf, BCTEXTLEN)) > 0)
- {
+ if( !p ) {
+ int l = readlink(LOCALTIME_LINK, buf, sizeof(buf)-1);
+ if( l > 0 ) {
buf[l] = 0;
- if( (p=strstr(buf, ZONEINFO_STR)) != 0 )
- {
- p += strlen(ZONEINFO_STR);
- l = strlen(p);
- }
- else
- l = 0;
+ if( !(p=strstr(buf, ZONEINFO_STR)) != 0 ) return "PAL";
+ p += strlen(ZONEINFO_STR);
}
}
- if(l)
- {
- for(i = 0; ntsc_zones[i]; i++)
- if(strcmp(ntsc_zones[i], p) == 0)
- return "NTSC";
+
+ if( p ) {
+ for( int i=0; ntsc_zones[i]; ++i ) {
+ if( !strcmp(ntsc_zones[i], p) )
+ return "NTSC";
+ }
}
- return "PAL";
+
+ p = getenv("TZ");
+ if( p ) {
+ for( int i=0; ntsc_zones[i]; ++i ) {
+ if( !strcmp(ntsc_zones[i], p) )
+ return "NTSC";
+ }
+ }
+
+//__timezone: Seconds west of UTC. 240sec/deg
+ double tz_deg = -__timezone / 240.;
+// from Honolulu = -10, to New York = -5, 15deg/hr lat -150..-75
+ return tz_deg >= -10*15 && tz_deg <= -5*15 ? "NTSC" : "PAL";
}
void MWindow::fill_preset_defaults(const char *preset, EDLSession *session)
for(fpr = &format_presets[0]; fpr->name; fpr++)
{
- if(strcmp(fpr->name, preset) == 0)
+ if(strcmp(_(fpr->name), preset) == 0)
{
session->audio_channels = fpr->audio_channels;
session->audio_tracks = fpr->audio_tracks;
{
if(index < 0 || index >= (int)MAX_NUM_PRESETS)
return "Error";
- return format_presets[index].name;
+ return _(format_presets[index].name);
}
{
w = 1; h = 1;
if(!width || !height) return 1;
+ if( width == 720 && (height == 480 || height == 576) ) {
+ w = 4; h = 3; return 0; // for NTSC and PAL
+ }
double ar = (double)width / height;
// square-ish pixels
if( EQUIV(ar, 1.0000) ) return 0;