diff options
Diffstat (limited to 'src/lib/formats/sord_cas.cpp')
-rw-r--r-- | src/lib/formats/sord_cas.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/lib/formats/sord_cas.cpp b/src/lib/formats/sord_cas.cpp index 145cd3c3221..ba4ad1faa24 100644 --- a/src/lib/formats/sord_cas.cpp +++ b/src/lib/formats/sord_cas.cpp @@ -7,10 +7,10 @@ Format code for Sord M5 cassette files **************************************************************************/ +#include "sord_cas.h" #include <cstring> #include <cassert> -#include "sord_cas.h" #define SORDM5_WAVESAMPLES_HEADER 1 #define SORDM5_WAVESAMPLES_TRAILER 1 @@ -18,7 +18,7 @@ static const uint8_t SORDM5_CAS_HEADER[6] = { 'S', 'O', 'R', 'D', 'M', '5'}; -static const struct CassetteModulation sordm5_cas_modulation = +static const cassette_image::Modulation sordm5_cas_modulation = { CASSETTE_MODULATION_SINEWAVE, 1575.0 - 300, 1575.0, 1575.0 + 300, @@ -28,13 +28,13 @@ static const struct CassetteModulation sordm5_cas_modulation = static uint8_t cassette_image_read_uint8( cassette_image *cassette, uint64_t offset) { uint8_t data; - cassette_image_read( cassette, &data, offset, 1); + cassette->image_read(&data, offset, 1); return data; } -static cassette_image::error sordm5_tap_identify( cassette_image *cassette, struct CassetteOptions *opts) +static cassette_image::error sordm5_tap_identify( cassette_image *cassette, cassette_image::Options *opts) { - return cassette_modulation_identify( cassette, &sordm5_cas_modulation, opts); + return cassette->modulation_identify(&sordm5_cas_modulation, opts); } static cassette_image::error sordm5_tap_load( cassette_image *cassette) @@ -49,44 +49,44 @@ static cassette_image::error sordm5_tap_load( cassette_image *cassette) uint32_t block_size, i, j; size_t filler_length; // init - image_size = cassette_image_size(cassette); + image_size = cassette->image_size(); image_pos = 0; // read/check header if (image_size < 16) return cassette_image::error::INVALID_IMAGE; - cassette_image_read( cassette, &header, image_pos, 16); + cassette->image_read(&header, image_pos, 16); image_pos += 16; if (memcmp( header, SORDM5_CAS_HEADER, sizeof(SORDM5_CAS_HEADER)) != 0) return cassette_image::error::INVALID_IMAGE; // add silence (header) - err = cassette_put_sample( cassette, 0, time_index, SORDM5_WAVESAMPLES_HEADER, 0); + err = cassette->put_sample(0, time_index, SORDM5_WAVESAMPLES_HEADER, 0); if (err != cassette_image::error::SUCCESS) return err; time_index += SORDM5_WAVESAMPLES_HEADER; // process blocks while (image_pos < image_size) { // read block type - block_type = cassette_image_read_uint8( cassette, image_pos + 0); + block_type = cassette_image_read_uint8(cassette, image_pos + 0); if ((block_type != 'H') && (block_type != 'D')) return cassette_image::error::INVALID_IMAGE; // read block size - block_size = cassette_image_read_uint8( cassette, image_pos + 1); + block_size = cassette_image_read_uint8(cassette, image_pos + 1); if (block_size == 0) block_size = 0x100; block_size += 3; // add silence (header block) if (block_type == 'H') { - err = cassette_put_sample( cassette, 0, time_index, SORDM5_WAVESAMPLES_BLOCK, 0); + err = cassette->put_sample(0, time_index, SORDM5_WAVESAMPLES_BLOCK, 0); if (err != cassette_image::error::SUCCESS) return err; time_index += SORDM5_WAVESAMPLES_BLOCK; } // add sync if (block_type == 'H') filler_length = 2.4 * (3150 / 8); else filler_length = 0.15 * (3150 / 8); - err = cassette_put_modulated_filler(cassette, 0, time_index, 0xFF, filler_length, &sordm5_cas_modulation, &time_displacement); + err = cassette->put_modulated_filler(0, time_index, 0xFF, filler_length, &sordm5_cas_modulation, &time_displacement); if (err != cassette_image::error::SUCCESS) return err; time_index += time_displacement; // process block for (i=0;i<block_size;i++) { // read byte - byte = cassette_image_read_uint8( cassette, image_pos + i); + byte = cassette_image_read_uint8(cassette, image_pos + i); // calc/check checksum #if 0 if (i == block_size) @@ -108,27 +108,27 @@ static cassette_image::error sordm5_tap_load( cassette_image *cassette) bit = (byte >> (j-2)) & 1; } // add bit - err = cassette_put_modulated_data_bit( cassette, 0, time_index, bit, &sordm5_cas_modulation, &time_displacement); + err = cassette->put_modulated_data_bit(0, time_index, bit, &sordm5_cas_modulation, &time_displacement); if (err != cassette_image::error::SUCCESS) return err; time_index += time_displacement; } } // mark end of block - err = cassette_put_modulated_data_bit( cassette, 0, time_index, 1, &sordm5_cas_modulation, &time_displacement); + err = cassette->put_modulated_data_bit(0, time_index, 1, &sordm5_cas_modulation, &time_displacement); if (err != cassette_image::error::SUCCESS) return err; time_index += time_displacement; // next block image_pos += block_size; } // add silence (trailer) - err = cassette_put_sample( cassette, 0, time_index, SORDM5_WAVESAMPLES_TRAILER, 0); + err = cassette->put_sample(0, time_index, SORDM5_WAVESAMPLES_TRAILER, 0); if (err != cassette_image::error::SUCCESS) return err; time_index += SORDM5_WAVESAMPLES_TRAILER; // return cassette_image::error::SUCCESS; } -static const struct CassetteFormat sordm5_cas_format = +static const cassette_image::Format sordm5_cas_format = { "cas", sordm5_tap_identify, |