Skip to content

Commit 8d7a0ea

Browse files
committed
code rev
1 parent 5088807 commit 8d7a0ea

File tree

3 files changed

+25
-33
lines changed

3 files changed

+25
-33
lines changed

sdl2-hyper-sonic-drivers/examples/adl-play.cpp

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <spdlog/spdlog.h>
1313
#include <fmt/color.h>
1414

15+
1516
#include <SDL2/SDL.h>
1617

1718
#include <memory>
@@ -52,7 +53,7 @@ void adl_play(const OplEmulator emu, const OplType type, std::shared_ptr<audio::
5253

5354
}
5455

55-
uint8_t track = 5; // starting from 2
56+
uint8_t track = 0;
5657

5758
ADLDriver adlDrv(device, audio::mixer::eChannelGroup::Music);
5859
adlDrv.setADLFile(adlFile);
@@ -67,13 +68,18 @@ void adl_play(const OplEmulator emu, const OplType type, std::shared_ptr<audio::
6768
if (!adlDrv.isPlaying())
6869
{
6970
adlDrv.play(track);
70-
ILogger::instance->info(std::format("Playing track: {}/{}", static_cast<int>(track), adlFile->getNumTracks()), ILogger::eCategory::Application);
71+
ILogger::instance->info(fmt::format("Playing track: {}/{}", static_cast<int>(track), adlFile->getNumTracks()), ILogger::eCategory::Application);
7172
}
7273
//delayMillis(1000);
7374
SDL_Event e;
74-
while (SDL_PollEvent(&e))
75+
while (SDL_WaitEventTimeout(&e, 100))
7576
{
76-
if (e.type == SDL_KEYDOWN)
77+
if (e.type == SDL_QUIT)
78+
{
79+
adlDrv.stopAllChannels();
80+
return;
81+
}
82+
else if (e.type == SDL_KEYDOWN)
7783
{
7884
switch (e.key.keysym.sym)
7985
{
@@ -98,6 +104,8 @@ void adl_play(const OplEmulator emu, const OplType type, std::shared_ptr<audio::
98104
track--;
99105
else
100106
track = adlFile->getNumTracks() - 1;
107+
108+
break;
101109
}
102110
}
103111
}
@@ -108,10 +116,10 @@ void adl_play(const OplEmulator emu, const OplType type, std::shared_ptr<audio::
108116

109117
int main(int argc, char* argv[])
110118
{
111-
if (SDL_Init(SDL_INIT_VIDEO) != 0)
119+
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS) != 0)
112120
return -1;
113121

114-
auto pWin = SDL_CreateWindow("", 0, 0, 100, 100, 0);
122+
auto pWin = SDL_CreateWindow("for Keyboard Input...", 0, 0, 320, 200, 0);
115123
if (!pWin)
116124
{
117125
SDL_Quit();
@@ -123,6 +131,8 @@ int main(int argc, char* argv[])
123131
if (!mixer->init())
124132
{
125133
spdlog::error("can't init mixer");
134+
SDL_DestroyWindow(pWin);
135+
SDL_Quit();
126136
return 1;
127137
}
128138

sdl2-hyper-sonic-drivers/sdl2-hyper-sonic-drivers.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
// sdl2-hyper-sonic-drivers.cpp : Defines the entry point for the application.
2-
// TODO: delete this file and its target, this is kinda scratch pad
2+
// TODO: delete this file and its target, this is kind of scratch pad
33

44
#include <iostream>
55
#include <memory>
6+
#include <format>
7+
#include <filesystem>
68

79
#include <SDL2/SDL.h>
810

@@ -131,7 +133,7 @@ int pcspkr(const int freq, const uint16_t audio, const int channels,const int ch
131133
132134
133135
// TODO try with channels.
134-
Mix_Hook(pcSpeaker.callback, &pcSpeaker);
136+
Mix_HookMusic(pcSpeaker.callback, &pcSpeaker);
135137
136138
cout << "SQUARE" << endl;
137139
playNotes(&pcSpeaker, PCSpeaker::eWaveForm::SQUARE, 440, 300);
@@ -412,6 +414,8 @@ void adldune2filestest()
412414
}
413415
QUIT:
414416
SDL_DestroyWindow(window);
417+
SDL_QuitSubSystem(SDL_INIT_VIDEO);
418+
SDL_QuitSubSystem(SDL_INIT_EVENTS);
415419
}
416420

417421
void vocdune2filestest()

sdl2-hyper-sonic-drivers/src/HyperSonicDrivers/files/westwood/ADLFile.cpp

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,6 @@ namespace HyperSonicDrivers::files::westwood
111111

112112
readDataFromFile_(m_meta_version.data_offset, m_meta_version.data_header_size);
113113

114-
// TODO: m_header is wrong for v3s
115-
/*for (int i = m_meta_version.num_headers - 1; i >= 0; --i)
116-
{
117-
if (m_header[i] < m_meta_version.num_track_offsets)
118-
{
119-
m_num_tracks = i;
120-
break;
121-
}
122-
}*/
123114
m_num_tracks = m_meta_version.num_headers;
124115
m_num_track_offsets = count_loop_<uint16_t>(m_meta_version.offset_start, m_track_offsets);
125116
m_num_instrument_offsets = count_loop_<uint16_t>(m_meta_version.offset_start, m_instrument_offsets);
@@ -140,19 +131,6 @@ namespace HyperSonicDrivers::files::westwood
140131
int ADLFile::getNumTracks() const noexcept
141132
{
142133
return m_num_tracks;
143-
144-
// find last subsong
145-
//int numSubSongs = 0;
146-
/*for (int i = m_meta_version.num_headers - 1; i >= 0; --i)
147-
{
148-
if (m_header[i] < m_meta_version.num_track_offsets)
149-
{
150-
numSubSongs = i;
151-
break;
152-
}
153-
}*/
154-
155-
//return numSubSongs;
156134
}
157135

158136
int ADLFile::getNumTrackOffsets() const noexcept
@@ -285,7 +263,7 @@ namespace HyperSonicDrivers::files::westwood
285263
{
286264
m_header.resize(header_size);
287265
// TODO: pass the byte size instead of a function read and read at once,
288-
// and do read in LE when is greter than 1, basically if version 3
266+
// and do read in LE when is greater than 1, basically if version 3
289267
for (int i = 0; i < header_size; i++)
290268
{
291269
m_header[i] = read();
@@ -304,14 +282,14 @@ namespace HyperSonicDrivers::files::westwood
304282
assertValid_(vec.size() == num_offsets);
305283
}
306284

307-
void ADLFile::readDataFromFile_(const int data_offsets, const int data_heder_size)
285+
void ADLFile::readDataFromFile_(const int data_offsets, const int data_header_size)
308286
{
309287
m_dataSize = size() - data_offsets;
310288
assertValid_(m_dataSize > 0);
311289
assertValid_(tell() == data_offsets);
312290
m_data.reset(new uint8_t[m_dataSize]);
313291
read(m_data.get(), m_dataSize);
314-
m_dataHeaderSize = data_heder_size;
292+
m_dataHeaderSize = data_header_size;
315293
}
316294

317295
void ADLFile::adjust_offsets_(std::vector<uint16_t>& vec)

0 commit comments

Comments
 (0)