"""Validated timecode -> offset from an explicit origin, never error-as-zero."""
import argparse
import json
from resolve_api_timecode import Clock, timecode_to_frames, timecode_to_offset


def main():
    p = argparse.ArgumentParser(description=__doc__)
    p.add_argument("timecode")
    p.add_argument("--start", required=True)
    p.add_argument("--rate", required=True)
    p.add_argument("--mode", choices=("ndf", "df"), required=True)
    a = p.parse_args()
    clock = Clock(a.rate, a.mode)
    print(json.dumps({"timecode": a.timecode, "start_timecode": a.start,
                      "frames_since_tc_zero": timecode_to_frames(a.timecode, clock),
                      "offset_frames": timecode_to_offset(a.timecode, a.start, clock),
                      "rate": str(clock.rate), "mode": clock.mode}, indent=2))


if __name__ == "__main__":
    main()
