move TimecodeFormat to libtimecode

provide a way to convert any TimecodeFormat to float frame-rate,
not only the currently active timecode_foramt.

git-svn-id: svn://localhost/ardour2/branches/3.0@13249 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Robin Gareus 2012-10-12 01:08:29 +00:00
parent 9116ea83dd
commit a9abe3b1e1
9 changed files with 133 additions and 111 deletions

View file

@ -423,6 +423,108 @@ hours_floor(Time& timecode)
}
}
float
timecode_to_frames_per_second(TimecodeFormat t)
{
switch (t) {
case timecode_23976:
return (24000.0/1001.0); //23.976;
break;
case timecode_24:
return 24;
break;
case timecode_24976:
return (25000.0/1001.0); //24.976;
break;
case timecode_25:
return 25;
break;
case timecode_2997:
return 29.97;
break;
case timecode_2997drop:
return (30000.0/1001.0); //29.97;
break;
case timecode_30:
return 30;
break;
case timecode_30drop:
return 30;
break;
case timecode_5994:
return (60000.0/1001.0); //59.94;
break;
case timecode_60:
return 60;
break;
default:
//std::cerr << "Editor received unexpected timecode type" << std::endl;
break;
}
return 30.0;
}
bool
timecode_has_drop_frames(TimecodeFormat t)
{
switch (t) {
case timecode_23976:
return false;
break;
case timecode_24:
return false;
break;
case timecode_24976:
return false;
break;
case timecode_25:
return false;
break;
case timecode_2997:
return false;
break;
case timecode_2997drop:
return true;
break;
case timecode_30:
return false;
break;
case timecode_30drop:
return true;
break;
case timecode_5994:
return false;
break;
case timecode_60:
return false;
break;
default:
//error << "Editor received unexpected timecode type" << endmsg;
break;
}
return false;
}
} // namespace Timecode