[update] Replaced the test program with the subproject of sjplayer.
This commit is contained in:
parent
826f6d76eb
commit
9c5fb1af8c
2
dub.json
2
dub.json
@ -3,5 +3,5 @@
|
|||||||
|
|
||||||
"targetType": "none",
|
"targetType": "none",
|
||||||
|
|
||||||
"subPackages": ["sjscript"]
|
"subPackages": ["sjscript", "sjplayer"]
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,12 @@
|
|||||||
|
|
||||||
"targetPath": ".bin",
|
"targetPath": ".bin",
|
||||||
|
|
||||||
|
"subPackages": [
|
||||||
|
"standalone"
|
||||||
|
],
|
||||||
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"sjscript": {"path": "../sjscript"},
|
||||||
"gl4d": {"path": "../thirdparty/gl4d"}
|
"gl4d": {"path": "../thirdparty/gl4d"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
14
sjplayer/standalone/dub.json
Normal file
14
sjplayer/standalone/dub.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "standalone",
|
||||||
|
|
||||||
|
"sourcePaths": ["."],
|
||||||
|
"mainSourceFile": "main.d",
|
||||||
|
|
||||||
|
"targetPath": ".bin",
|
||||||
|
|
||||||
|
"dependencies": {
|
||||||
|
"sjplayer": {"path": "../"},
|
||||||
|
"gl4d": {"path": "../../thirdparty/gl4d"},
|
||||||
|
"derelict-sfml2": "~>4.0.0-beta.2"
|
||||||
|
}
|
||||||
|
}
|
57
sjplayer/standalone/main.d
Normal file
57
sjplayer/standalone/main.d
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/// License: MIT
|
||||||
|
import std;
|
||||||
|
|
||||||
|
import derelict.sfml2.audio,
|
||||||
|
derelict.sfml2.system,
|
||||||
|
derelict.sfml2.window;
|
||||||
|
|
||||||
|
import gl4d;
|
||||||
|
|
||||||
|
int main(string[] args) {
|
||||||
|
(args.length == 4).enforce;
|
||||||
|
const music_file = args[1];
|
||||||
|
const bpm = args[2].to!float;
|
||||||
|
const script_file = args[3];
|
||||||
|
|
||||||
|
auto win = Initialize();
|
||||||
|
scope(exit) sfWindow_destroy(win);
|
||||||
|
|
||||||
|
auto music = sfMusic_createFromFile(music_file.toStringz).enforce;
|
||||||
|
scope(exit) sfMusic_destroy(music);
|
||||||
|
sfMusic_play(music);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
sfEvent e;
|
||||||
|
sfWindow_pollEvent(win, &e);
|
||||||
|
if (e.type == sfEvtClosed) break;
|
||||||
|
|
||||||
|
const msecs = sfMusic_getPlayingOffset(music).microseconds * 1e-6f;
|
||||||
|
const beat = msecs/60f * bpm;
|
||||||
|
|
||||||
|
sfWindow_display(win);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
sfWindow* Initialize() {
|
||||||
|
DerelictSFML2System.load();
|
||||||
|
DerelictSFML2Window.load();
|
||||||
|
DerelictSFML2Audio .load();
|
||||||
|
|
||||||
|
sfContextSettings specs;
|
||||||
|
specs.depthBits = 24;
|
||||||
|
specs.stencilBits = 8;
|
||||||
|
specs.antialiasingLevel = 1;
|
||||||
|
specs.majorVersion = 3;
|
||||||
|
specs.minorVersion = 3;
|
||||||
|
specs.attributeFlags = sfContextCore;
|
||||||
|
|
||||||
|
auto win = sfWindow_create(sfVideoMode(600, 600),
|
||||||
|
"sjplayer".toStringz, sfClose | sfTitlebar, &specs).enforce;
|
||||||
|
sfWindow_setVerticalSyncEnabled(win, true);
|
||||||
|
|
||||||
|
sfWindow_setActive(win, true).enforce;
|
||||||
|
gl.ApplyContext();
|
||||||
|
|
||||||
|
return win;
|
||||||
|
}
|
@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env dub
|
|
||||||
/+ dub.json:
|
|
||||||
{
|
|
||||||
"name": "sjplayer",
|
|
||||||
"dependencies": {
|
|
||||||
"sjscript": {"path": "../sjscript"},
|
|
||||||
"derelict-sfml2": "~>4.0.0-beta.2"
|
|
||||||
},
|
|
||||||
"lflags-posix": ["-L../thirdparty/dsfml/lib"],
|
|
||||||
"lflags-windows": ["/LIBPATH:..\\thirdparty\\dsfml\\lib\\"]
|
|
||||||
} +/
|
|
||||||
|
|
||||||
import std;
|
|
||||||
|
|
||||||
import derelict.sfml2.audio,
|
|
||||||
derelict.sfml2.system,
|
|
||||||
derelict.sfml2.window;
|
|
||||||
|
|
||||||
int main(string[] args) {
|
|
||||||
DerelictSFML2System.load();
|
|
||||||
DerelictSFML2Window.load();
|
|
||||||
DerelictSFML2Audio.load();
|
|
||||||
|
|
||||||
sfContextSettings specs;
|
|
||||||
specs.depthBits = 32;
|
|
||||||
specs.stencilBits = 32;
|
|
||||||
specs.antialiasingLevel = 1;
|
|
||||||
specs.majorVersion = 3;
|
|
||||||
specs.minorVersion = 3;
|
|
||||||
|
|
||||||
auto win = sfWindow_create(
|
|
||||||
sfVideoMode(600, 600), "sjplayer".toStringz, sfDefaultStyle, &specs);
|
|
||||||
scope(exit) sfWindow_destroy(win);
|
|
||||||
|
|
||||||
sfWindow_setActive(win, true);
|
|
||||||
|
|
||||||
auto running = true;
|
|
||||||
while (running) {
|
|
||||||
sfEvent e;
|
|
||||||
sfWindow_pollEvent(win, &e);
|
|
||||||
|
|
||||||
running = e.type != sfEvtClosed;
|
|
||||||
|
|
||||||
sfWindow_display(win);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
Reference in New Issue
Block a user