rec = remote = false;
}
-void CMT::write_buffer(uint8 value, int samples)
+void CMT::write_buffer(uint8_t value, int samples)
{
if(is_wav) {
for(int i = 0; i < samples; i++) {
void CMT::put_signal()
{
if(rec && remote) {
- uint32 clock = passed_clock(prev_clock);
+ uint32_t clock = get_passed_clock(prev_clock);
if(prev_signal == 1) {
// 2400Hz
int count = (int)(1200.0 * (double)clock / (double)CPU_CLOCKS + 0.5) * 2;
}
}
-void CMT::write_signal(int id, uint32 data, uint32 mask)
+void CMT::write_signal(int id, uint32_t data, uint32_t mask)
{
bool next = ((data & mask) != 0);
if(!remote && next) {
// start
prev_signal = 0;
- prev_clock = current_clock();
+ prev_clock = get_current_clock();
} else if(remote && !next) {
// stop
put_signal();
put_signal();
}
prev_signal = next ? 1 : -1;
- prev_clock = current_clock();
+ prev_clock = get_current_clock();
}
}
close_tape();
if(fio->Fopen(file_path, FILEIO_WRITE_BINARY)) {
- _tcscpy_s(rec_file_path, _MAX_PATH, file_path);
+ my_tcscpy_s(rec_file_path, _MAX_PATH, file_path);
if(check_file_extension(file_path, _T(".wav"))) {
- uint8 dummy[sizeof(wav_header_t) + sizeof(wav_chunk_t)];
- memset(dummy, 0, sizeof(dummy));
- fio->Fwrite(dummy, sizeof(dummy), 1);
+ write_dummy_wav_header((void *)fio);
is_wav = true;
}
bufcnt = 0;
fio->Fwrite(buffer, bufcnt, 1);
}
if(is_wav) {
- uint32 length = fio->Ftell();
-
+ uint32_t length = fio->Ftell();
wav_header_t wav_header;
wav_chunk_t wav_chunk;
+#if 0
+ pair_t __riff_chunk_size;
+ pair_t __fmt_chunk_size;
+ pair_t __wav_chunk_size;
+ pair16_t __fmt_id;
+ pair16_t __channels;
+ pair_t __sample_rate;
+ pair16_t __block_size;
+ pair16_t __sample_bits;
+
+ __riff_chunk_size.d = length - 8;
+ __fmt_chunk_size.d = 16;
+ __fmt_id.w = 1;
+ __channels.w = 1;
+ __sample_rate.d = SAMPLE_RATE;
+ __block_size.w = 1;
+ __sample_bits.w = 8;
+
memcpy(wav_header.riff_chunk.id, "RIFF", 4);
- wav_header.riff_chunk.size = length - 8;
+ wav_header.riff_chunk.size = __riff_chunk_size.get_4bytes_le_to();
+
memcpy(wav_header.wave, "WAVE", 4);
memcpy(wav_header.fmt_chunk.id, "fmt ", 4);
- wav_header.fmt_chunk.size = 16;
- wav_header.format_id = 1;
- wav_header.channels = 1;
- wav_header.sample_rate = SAMPLE_RATE;
- wav_header.data_speed = SAMPLE_RATE;
- wav_header.block_size = 1;
- wav_header.sample_bits = 8;
-
+ wav_header.fmt_chunk.size = __riff_chunk_size.get_4bytes_le_to();
+ wav_header.format_id = __fmt_id.get_2bytes_le_to();
+ wav_header.channels = __channels.get_2byte_le_to();
+ wav_header.sample_rate = __sample_rate.get_4bytes_le_to();
+ wav_header.data_speed = __sample_rate.get_4bytes_le_to();
+ wav_header.block_size = __block_size.get_2bytes_le_to();
+ wav_header.sample_bits = __sample_bits_get_2bytes_le_to();
+
memcpy(wav_chunk.id, "data", 4);
- wav_chunk.size = length - sizeof(wav_header) - sizeof(wav_chunk);
+ __wav_chunk_size.d = length - sizeof(wav_header) - sizeof(wav_chunk);
+ wav_chunk.size = __wav_chunk_size.get_4bytes_le_to();
+
fio->Fseek(0, FILEIO_SEEK_SET);
fio->Fwrite(&wav_header, sizeof(wav_header), 1);
fio->Fwrite(&wav_chunk, sizeof(wav_chunk), 1);
+#else
+ if(set_wav_header(&wav_header, &wav_chunk, 1, SAMPLE_RATE, 8, length)) {
+ fio->Fseek(0, FILEIO_SEEK_SET);
+ fio->Fwrite(&wav_header, sizeof(wav_header), 1);
+ fio->Fwrite(&wav_chunk, sizeof(wav_chunk), 1);
+ }
+#endif
}
fio->Fclose();
}
fio->Fseek(0, FILEIO_SEEK_SET);
state_fio->FputInt32(length_tmp);
while(length_tmp != 0) {
- uint8 buffer_tmp[1024];
- int length_rw = min(length_tmp, sizeof(buffer_tmp));
+ uint8_t buffer_tmp[1024];
+ int length_rw = min(length_tmp, (int)sizeof(buffer_tmp));
fio->Fread(buffer_tmp, length_rw, 1);
state_fio->Fwrite(buffer_tmp, length_rw, 1);
length_tmp -= length_rw;
if(rec) {
fio->Fopen(rec_file_path, FILEIO_READ_WRITE_NEW_BINARY);
while(length_tmp != 0) {
- uint8 buffer_tmp[1024];
- int length_rw = min(length_tmp, sizeof(buffer_tmp));
+ uint8_t buffer_tmp[1024];
+ int length_rw = min(length_tmp, (int)sizeof(buffer_tmp));
state_fio->Fread(buffer_tmp, length_rw, 1);
if(fio->IsOpened()) {
fio->Fwrite(buffer_tmp, length_rw, 1);