diff options
Diffstat (limited to 'src/lib/formats/sc3000_bit.cpp')
-rw-r--r-- | src/lib/formats/sc3000_bit.cpp | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/lib/formats/sc3000_bit.cpp b/src/lib/formats/sc3000_bit.cpp index c656b54ee95..6044d9eec50 100644 --- a/src/lib/formats/sc3000_bit.cpp +++ b/src/lib/formats/sc3000_bit.cpp @@ -8,9 +8,9 @@ *********************************************************************/ -#include <assert.h> - #include "sc3000_bit.h" +#include "tzx_cas.h" + /*************************************************************************** PARAMETERS @@ -26,9 +26,9 @@ CassetteModulation sc3000_bit_modulation -------------------------------------------------*/ -static const struct CassetteModulation sc3000_bit_modulation = +static const cassette_image::Modulation sc3000_bit_modulation = { - CASSETTE_MODULATION_SINEWAVE, + cassette_image::MODULATION_SINEWAVE, 1200.0 - 300, 1200.0, 1200.0 + 300, 2400.0 - 600, 2400.0, 2400.0 + 600 }; @@ -37,9 +37,9 @@ static const struct CassetteModulation sc3000_bit_modulation = sc3000_bit_identify - identify cassette -------------------------------------------------*/ -static cassette_image::error sc3000_bit_identify(cassette_image *cassette, struct CassetteOptions *opts) +static cassette_image::error sc3000_bit_identify(cassette_image *cassette, cassette_image::Options *opts) { - return cassette_modulation_identify( cassette, &sc3000_bit_modulation, opts); + return cassette->modulation_identify(sc3000_bit_modulation, opts); } /*------------------------------------------------- @@ -48,7 +48,7 @@ static cassette_image::error sc3000_bit_identify(cassette_image *cassette, struc #define MODULATE(_value) \ for (int i = 0; i < (_value ? 2 : 1); i++) { \ - err = cassette_put_modulated_data_bit(cassette, 0, time_index, _value, &sc3000_bit_modulation, &time_displacement);\ + err = cassette->put_modulated_data_bit(0, time_index, _value, sc3000_bit_modulation, &time_displacement);\ if (err != cassette_image::error::SUCCESS) return err;\ time_index += time_displacement;\ } @@ -56,15 +56,13 @@ static cassette_image::error sc3000_bit_identify(cassette_image *cassette, struc static cassette_image::error sc3000_bit_load(cassette_image *cassette) { cassette_image::error err; - uint64_t image_size = cassette_image_size(cassette); - uint64_t image_pos = 0; + uint64_t image_size = cassette->image_size(); double time_index = 0.0; double time_displacement; - uint8_t data; - while (image_pos < image_size) + for (uint64_t image_pos = 0; image_pos < image_size; image_pos++) { - cassette_image_read(cassette, &data, image_pos, 1); + uint8_t data = cassette->image_read_byte(image_pos); switch (data) { @@ -77,13 +75,11 @@ static cassette_image::error sc3000_bit_load(cassette_image *cassette) break; case ' ': - err = cassette_put_sample( cassette, 0, time_index, 1/1200.0, 0); + err = cassette->put_sample(0, time_index, 1/1200.0, 0); if (err != cassette_image::error::SUCCESS) return err; time_index += 1/1200.0; break; } - - image_pos++; } return cassette_image::error::SUCCESS; @@ -93,7 +89,7 @@ static cassette_image::error sc3000_bit_load(cassette_image *cassette) CassetteFormat sc3000_bit_cassette_format -------------------------------------------------*/ -const struct CassetteFormat sc3000_bit_format = +const cassette_image::Format sc3000_bit_format = { "bit", sc3000_bit_identify, @@ -103,4 +99,5 @@ const struct CassetteFormat sc3000_bit_format = CASSETTE_FORMATLIST_START( sc3000_cassette_formats ) CASSETTE_FORMAT(sc3000_bit_format) + CASSETTE_FORMAT(tzx_cassette_format) CASSETTE_FORMATLIST_END |