// // TrackSerialiser.hpp // Clock Signal // // Created by Thomas Harte on 23/09/2017. // Copyright 2017 Thomas Harte. All rights reserved. // #pragma once #include "../DPLL/DigitalPhaseLockedLoop.hpp" #include "PCMSegment.hpp" #include "Track.hpp" namespace Storage::Disk { /*! Instantiates a PLL with a target bit length of @c length_of_a_bit and provides a complete serialisation of @c track, starting from the index hole. This feature is offered for the benefit of various parts of the code that need to make sense of a track **other than emulation**, as it renders a one-off image of the track, which can be inaccurate. However there are many occasions where a single rendering is desireable, e.g. file formats that apply that constraint, or static analysis prior to emulation launch, which works with broad strokes. @param track The track to serialise. @param length_of_a_bit The expected length of a single bit, as a proportion of the track length. */ PCMSegment track_serialisation(const Track &track, Time length_of_a_bit); }