Skip to content

Commit 0595589

Browse files
Now uses SDL2
1 parent c23180c commit 0595589

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+482
-617
lines changed

Makefile

+20-19
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ NSIS := C:/program\ files\ \(x86\)/nsis/makensis.exe /V2 /NOCD
66
WGET := wget --quiet
77
MAKEBUNDLE := ../klystron/tools/bin/makebundle.exe
88
UPLOAD := cmd.exe /c upload.bat
9-
DLLS := zip/data/SDL.dll zip/data/SDL_image.dll
9+
DLLS := zip/data/SDL2_image.dll zip/data/SDL2.dll
1010
DESTDIR ?= /usr
1111
EXT := .c
12-
CC := gcc
12+
CC := gcc -Werror
1313
CDEP := gcc -E -MM
1414
ARCHIVE := klystrack
1515
INSTALLER := klystrack.exe
16-
SDLVER := 1.2.15
17-
SDL_IMAGEVER := 1.2.12
16+
SDL_VER := 2.0.3
17+
SDL_IMAGEVER := 2.0.0
1818
THEMES :=
1919
REV := cp -f
2020

@@ -23,8 +23,8 @@ CFLAGS := $(MACHINE) -ftree-vectorize -std=gnu99 --no-strict-aliasing
2323
ifdef COMSPEC
2424
TARGET := $(TARGET).exe
2525
ARCHIVE := $(ARCHIVE).zip
26-
SDLFLAGS := -I /mingw/include/sdl
27-
SDLLIBS := -lSDLmain -lSDL -lSDL_image -lwinmm
26+
SDLFLAGS := -I c:/mingw/include/SDL2
27+
SDLLIBS := -lSDL2main -lSDL2 -lSDL2_image -lwinmm
2828
CFLAGS += -mthreads -DMIDI
2929
ZIP := pkzipc -exclude=.* -zipdate=newest -path=relative -silent -rec -dir -add
3030
ZIPEXT := pkzipc -ext -silent
@@ -33,7 +33,7 @@ else
3333
DLLS =
3434
ARCHIVE := $(ARCHIVE).tar.gz
3535
SDLFLAGS := `sdl-config --cflags` -U_FORTIFY_SOURCE
36-
SDLLIBS := `sdl-config --libs` -lSDL_image
36+
SDLLIBS := `sdl-config --libs` -lSDL2_image
3737
endif
3838

3939
ifdef COMSPEC
@@ -46,7 +46,7 @@ else
4646
endif
4747

4848
EXTFLAGS := -DNOSDL_MIXER -DUSESDLMUTEXES -DENABLEAUDIODUMP -DSTEREOOUTPUT -DUSESDL_IMAGE $(EXTFLAGS)
49-
LDFLAGS := -L ../klystron/bin.$(CFG) -lengine_gfx -lengine_util -lengine_snd -lengine_gui -lm $(SDLLIBS)
49+
LDFLAGS := -L ../klystron/bin.$(CFG) -lengine_gfx -lengine_util -lengine_snd -lengine_gui -lm -lmingw32 $(SDLLIBS)
5050
INCLUDEFLAGS := -I src $(SDLFLAGS) -I ../klystron/src -L../klystron/bin.$(CFG) -DRES_PATH="$(RES_PATH)" -DCONFIG_PATH="$(CONFIG_PATH)" $(EXTFLAGS)
5151

5252
ifdef COMSPEC
@@ -211,22 +211,23 @@ ifneq ($(MAKECMDGOALS),clean)
211211
-include $(DEPS)
212212
endif
213213

214-
zip/data/SDL.dll:
215-
@$(ECHO) "Downloading SDL..."
214+
zip/data/SDL2_image.dll:
215+
@$(ECHO) "Downloading "$<"..."
216216
@mkdir -p temp
217-
@cd temp ; $(WGET) http://www.libsdl.org/release/SDL-$(SDLVER)-win32.zip ; $(ZIPEXT) SDL-$(SDLVER)-win32.zip SDL.dll ; rm SDL-$(SDLVER)-win32.zip
217+
@cd temp ; $(WGET) http://www.libsdl.org/projects/SDL_image/release/SDL2_image-$(SDL_IMAGEVER)-win32-x86.zip ; $(ZIPEXT) SDL2_image-$(SDL_IMAGEVER)-win32-x86.zip SDL2_image.dll libpng16-16.dll zlib1.dll ; rm SDL2_image-$(SDL_IMAGEVER)-win32-x86.zip
218218
@mkdir -p zip/data
219-
@mv temp/SDL.dll zip/data/SDL.dll
219+
@mv temp/SDL2_image.dll zip/data/SDL2_image.dll
220+
@mv temp/libpng16-16.dll zip/data/libpng16-16.dll
221+
@mv temp/zlib1.dll zip/data/zlib1.dll
220222

221-
zip/data/SDL_image.dll:
222-
@$(ECHO) "Downloading SDL_image..."
223+
zip/data/SDL2.dll:
224+
@$(ECHO) "Downloading "$<"..."
223225
@mkdir -p temp
224-
@cd temp ; $(WGET) http://www.libsdl.org/projects/SDL_image/release/SDL_image-$(SDL_IMAGEVER)-win32.zip ; $(ZIPEXT) SDL_image-$(SDL_IMAGEVER)-win32.zip SDL_image.dll libpng15-15.dll zlib1.dll ; rm SDL_image-$(SDL_IMAGEVER)-win32.zip
226+
@cd temp ; $(WGET) https://www.libsdl.org/release/SDL2-$(SDL_VER)-win32-x86.zip ; $(ZIPEXT) SDL2-$(SDL_VER)-win32-x86.zip SDL2.dll ; rm SDL2-$(SDL_VER)-win32-x86.zip
225227
@mkdir -p zip/data
226-
@mv temp/SDL_image.dll zip/data/SDL_image.dll
227-
@mv temp/libpng15-15.dll zip/data/libpng15-15.dll
228-
@mv temp/zlib1.dll zip/data/zlib1.dll
229-
228+
@mv temp/SDL2.dll zip/data/SDL2.dll
229+
230+
230231
objs.$(CFG)/windres.o: windres/* icon/*
231232
windres -i windres/resource.rc -o $@
232233

player/Makefile

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
ifdef COMSPEC
2-
SDL := -lSDLmain -lSDL -lSDL_mixer -I /mingw/include/sdl
2+
SDL := -lSDL2main -lSDL2 -I /mingw/include/SDL2
33
LIBS := -lmingw32 -lengine_snd
44
else
5-
SDL := `sdl-config --libs` -lSDL_mixer
5+
SDL := `sdl-config --libs`
66
LIBS := -lengine_snd
77
endif
88

99
player.exe: player.c
10-
gcc -DUSESDLMUTEXES -DSTEREOOUTPUT -DENABLEAUDIODUMP -o player.exe player.c -g -Wall $(LIBS) $(SDL) -I ../../klystron/src -L ../../klystron/bin.debug
10+
gcc -DUSESDLMUTEXES -DSTEREOOUTPUT -DENABLEAUDIODUMP -DNOSDL_MIXER -DDEBUG -o player.exe player.c -g -Wall $(LIBS) $(SDL) -I ../../klystron/src -L ../../klystron/bin.debug

player/player.c

+4-10
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ Usage: player.exe <song>
88
/* SDL stuff */
99

1010
#include "SDL.h"
11-
#include "SDL_mixer.h"
1211

1312
/* klystron stuff */
1413

1514
#include "snd/cyd.h"
1615
#include "snd/music.h"
1716

17+
#include <string.h>
18+
1819
#undef main
1920

2021
int main(int argc, char **argv)
@@ -43,19 +44,14 @@ int main(int argc, char **argv)
4344
}
4445

4546
SDL_Init(SDL_INIT_AUDIO);
46-
Mix_OpenAudio(44100, AUDIO_S16SYS, 2, 4096);
4747

48-
/* We need only one channel since Cyd does the mixing */
49-
50-
Mix_AllocateChannels(1);
51-
5248
/* Notify the music engine about Cyd */
5349

5450
mus_init_engine(&mus, &cyd);
5551

5652
/* Add Cyd in SDL_Mixer audio output queue */
5753

58-
cyd_register(&cyd);
54+
cyd_register(&cyd, 2000);
5955

6056
/* Start updating the music engine at the rate set in the song */
6157

@@ -86,7 +82,7 @@ int main(int argc, char **argv)
8682

8783
int song_position;
8884

89-
mus_poll_status(&mus, &song_position, NULL, NULL, NULL, NULL, NULL);
85+
mus_poll_status(&mus, &song_position, NULL, NULL, NULL, NULL, NULL, NULL);
9086

9187
printf("Position: %4d/%d\r", song_position, song.song_length);
9288

@@ -99,8 +95,6 @@ int main(int argc, char **argv)
9995

10096
cyd_deinit(&cyd);
10197

102-
Mix_CloseAudio();
103-
10498
cyd_unregister(&cyd);
10599
cyd_deinit(&cyd);
106100

src/action.c

+7-8
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ OTHER DEALINGS IN THE SOFTWARE.
4141
#include "gui/mouse.h"
4242
#include "view/wavetableview.h"
4343
#include "help.h"
44+
#include <string.h>
4445

4546
extern Mused mused;
4647
extern GfxDomain *domain;
@@ -243,7 +244,7 @@ void select_program_step(void *idx, void *digit, void *unused2)
243244

244245
void new_song_action(void *unused1, void *unused2, void *unused3)
245246
{
246-
if (confirm(domain, mused.slider_bevel->surface, &mused.largefont, "Clear song and data?"))
247+
if (confirm(domain, mused.slider_bevel, &mused.largefont, "Clear song and data?"))
247248
{
248249
stop(0,0,0);
249250
new_song();
@@ -444,7 +445,7 @@ void change_seq_steps(void *delta, void *unused1, void *unused2)
444445

445446
void show_about_box(void *unused1, void *unused2, void *unused3)
446447
{
447-
msgbox(domain, mused.slider_bevel->surface, &mused.largefont, VERSION_STRING "\n" KLYSTRON_VERSION_STRING, MB_OK);
448+
msgbox(domain, mused.slider_bevel, &mused.largefont, VERSION_STRING "\n" KLYSTRON_VERSION_STRING, MB_OK);
448449
}
449450

450451

@@ -524,8 +525,7 @@ void change_pixel_scale(void *scale, void*b, void*c)
524525
domain->screen_w = my_max(320, mused.window_w / mused.pixel_scale);
525526
domain->screen_h = my_max(240, mused.window_h / mused.pixel_scale);
526527
domain->scale = mused.pixel_scale;
527-
gfx_domain_update(domain);
528-
mused.screen = gfx_domain_get_surface(domain);
528+
gfx_domain_update(domain, true);
529529

530530
for (int i = 0 ; i < 4; ++i)
531531
{
@@ -550,8 +550,7 @@ void toggle_fullscreen(void *a, void*b, void*c)
550550
void change_fullscreen(void *a, void*b, void*c)
551551
{
552552
domain->fullscreen = (mused.flags & FULLSCREEN) != 0;
553-
gfx_domain_update(domain);
554-
mused.screen = gfx_domain_get_surface(domain);
553+
gfx_domain_update(domain, true);
555554
}
556555

557556

@@ -592,7 +591,7 @@ void export_wav_action(void *a, void*b, void*c)
592591
{
593592
char def[1000];
594593
snprintf(def, sizeof(def), "%s.wav", mused.song.title);
595-
FILE * f = open_dialog("wb", "Export .WAV", "wav", domain, mused.slider_bevel->surface, &mused.largefont, &mused.smallfont, def);
594+
FILE * f = open_dialog("wb", "Export .WAV", "wav", domain, mused.slider_bevel, &mused.largefont, &mused.smallfont, def);
596595
if (f)
597596
{
598597
export_wav(&mused.song, mused.mus.cyd->wavetable_entries, f);
@@ -801,7 +800,7 @@ void change_visualizer_action(void *vis, void *unused1, void *unused2)
801800
void open_help(void *unused0, void *unused1, void *unused2)
802801
{
803802
cyd_lock(&mused.cyd, 0);
804-
helpbox("Help", domain, mused.slider_bevel->surface, &mused.largefont, &mused.smallfont);
803+
helpbox("Help", domain, mused.slider_bevel, &mused.largefont, &mused.smallfont);
805804
cyd_lock(&mused.cyd, 1);
806805
}
807806

src/command.c

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ OTHER DEALINGS IN THE SOFTWARE.
2727
#include "snd/music.h"
2828
#include "snd/freqs.h"
2929
#include "macros.h"
30+
#include <string.h>
3031

3132
static const InstructionDesc instruction_desc[] =
3233
{

src/config.c

+5-3
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ OTHER DEALINGS IN THE SOFTWARE.
2929
#include "gui/filebox.h"
3030
#include "action.h"
3131
#include "gfx/gfx.h"
32+
#include <strings.h>
3233

3334
extern Mused mused;
3435
extern GfxDomain *domain;
@@ -70,11 +71,12 @@ static const struct { int type; const char *name; void *param; int mask; } confi
7071
{ C_BOOL, "edit_sequence_digits", &mused.flags, EDIT_SEQUENCE_DIGITS },
7172
{ C_BOOL, "disable_nostalgy", &mused.flags, DISABLE_NOSTALGY },
7273
{ C_BOOL, "disable_vu_meters", &mused.flags, DISABLE_VU_METERS },
74+
{ C_BOOL, "maximized", &mused.flags, WINDOW_MAXIMIZED },
7375
{ C_END }
7476
};
7577

7678

77-
static void apply_config()
79+
void apply_config()
7880
{
7981
change_fullscreen(0, 0, 0);
8082
change_pixel_scale(CASTTOPTR(void,mused.pixel_scale), 0, 0);
@@ -83,7 +85,7 @@ static void apply_config()
8385
}
8486

8587

86-
void load_config(const char *path)
88+
void load_config(const char *path, bool apply)
8789
{
8890
char *e = expand_tilde(path);
8991
FILE *f = fopen(e ? e : path, "rt");
@@ -154,7 +156,7 @@ void load_config(const char *path)
154156
fclose(f);
155157
}
156158

157-
apply_config();
159+
if (apply) apply_config();
158160

159161
e = expand_tilde("~/.klystrackfavorites");
160162

src/config.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2626
OTHER DEALINGS IN THE SOFTWARE.
2727
*/
2828

29-
void load_config(const char *path);
29+
#include <stdbool.h>
30+
31+
void load_config(const char *path, bool apply);
3032
void save_config(const char *path);
33+
void apply_config();
3134

3235
#endif

0 commit comments

Comments
 (0)