mirror of
https://github.com/TomHarte/CLK.git
synced 2025-08-16 05:27:43 +00:00
This is almost complete, except that it doesn't act appropriately if some bits are written but not enough to cover the entire writing period.
This commit is contained in:
@@ -30,6 +30,11 @@ Controller::Controller(unsigned int clock_rate, unsigned int clock_rate_multipli
|
|||||||
|
|
||||||
void Controller::setup_track()
|
void Controller::setup_track()
|
||||||
{
|
{
|
||||||
|
if(patched_track_)
|
||||||
|
{
|
||||||
|
drive_->set_track(patched_track_);
|
||||||
|
}
|
||||||
|
|
||||||
track_ = drive_->get_track();
|
track_ = drive_->get_track();
|
||||||
track_is_dirty_ = false;
|
track_is_dirty_ = false;
|
||||||
|
|
||||||
@@ -143,7 +148,12 @@ void Controller::write_bit(bool value)
|
|||||||
void Controller::end_writing()
|
void Controller::end_writing()
|
||||||
{
|
{
|
||||||
is_reading_ = true;
|
is_reading_ = true;
|
||||||
// TODO
|
|
||||||
|
if(!patched_track_)
|
||||||
|
{
|
||||||
|
patched_track_.reset(new PCMPatchedTrack(track_));
|
||||||
|
}
|
||||||
|
patched_track_->add_segment(write_start_time_, write_segment_);
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - PLL control and delegate
|
#pragma mark - PLL control and delegate
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
#include "Drive.hpp"
|
#include "Drive.hpp"
|
||||||
#include "DigitalPhaseLockedLoop.hpp"
|
#include "DigitalPhaseLockedLoop.hpp"
|
||||||
#include "PCMSegment.hpp"
|
#include "PCMSegment.hpp"
|
||||||
|
#include "PCMPatchedTrack.hpp"
|
||||||
#include "../TimedEventLoop.hpp"
|
#include "../TimedEventLoop.hpp"
|
||||||
|
|
||||||
namespace Storage {
|
namespace Storage {
|
||||||
@@ -116,6 +117,7 @@ class Controller: public DigitalPhaseLockedLoop::Delegate, public TimedEventLoop
|
|||||||
|
|
||||||
bool is_reading_;
|
bool is_reading_;
|
||||||
bool track_is_dirty_;
|
bool track_is_dirty_;
|
||||||
|
std::shared_ptr<PCMPatchedTrack> patched_track_;
|
||||||
PCMSegment write_segment_;
|
PCMSegment write_segment_;
|
||||||
Time write_start_time_;
|
Time write_start_time_;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user