summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/sc3000_bit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/sc3000_bit.cpp')
-rw-r--r--src/lib/formats/sc3000_bit.cpp29
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