Sounds are working...BUT...I have to make ones I own so hang on until I do that.
This commit is contained in:
parent
7309ec2f40
commit
268d8abf52
5 changed files with 75 additions and 11 deletions
|
@ -6,10 +6,10 @@
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
sf::SoundBuffer buffer;
|
sf::SoundBuffer buffer;
|
||||||
sf::Sound click;
|
sf::Sound sound;
|
||||||
|
|
||||||
if(argc != 2) {
|
if(argc != 2) {
|
||||||
fmt::println("USAGE: audiotest click.mp3");
|
fmt::println("USAGE: audiotest [FILE]");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,15 +17,16 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
if(!buffer.loadFromFile(in_file)) {
|
if(!buffer.loadFromFile(in_file)) {
|
||||||
fmt::println("Failed to load {}", in_file);
|
fmt::println("Failed to load {}", in_file);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
click.setBuffer(buffer);
|
sound.setBuffer(buffer);
|
||||||
|
|
||||||
fmt::println("Playing {}. Hit ctrl-c to exit.", in_file);
|
fmt::println("Playing {}. Hit ctrl-c to exit.", in_file);
|
||||||
|
|
||||||
while(true) {
|
sound.play();
|
||||||
click.play();
|
while(sound.getStatus() != sf::SoundSource::Status::Stopped) {
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -66,7 +66,7 @@ void Builder::run_build(GameEngine &game, const char* command) {
|
||||||
|
|
||||||
// refactor this
|
// refactor this
|
||||||
if(game.is_dead()) {
|
if(game.is_dead()) {
|
||||||
gui.output(format("YOU DIED!\n"));
|
gui.you_died();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -75,9 +75,9 @@ void Builder::run_build(GameEngine &game, const char* command) {
|
||||||
|
|
||||||
int rc = pclose(build_out);
|
int rc = pclose(build_out);
|
||||||
if(rc == 0) {
|
if(rc == 0) {
|
||||||
gui.output("BUILD FINISHED!");
|
gui.build_works();
|
||||||
} else {
|
} else {
|
||||||
gui.output(format("!!! BUILD FAILED. Your command correct? '{}'", command));
|
gui.build_failed(command);
|
||||||
}
|
}
|
||||||
|
|
||||||
stats_out.close();
|
stats_out.close();
|
||||||
|
@ -107,7 +107,7 @@ void Builder::run(const char *git_path, const char *build_cmd) {
|
||||||
fileWatcher->watch();
|
fileWatcher->watch();
|
||||||
|
|
||||||
if(listener->changes) {
|
if(listener->changes) {
|
||||||
gui.output("############# START ############");
|
gui.building();
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||||
gui.output(format("CHANGES! Running build {}", build_cmd));
|
gui.output(format("CHANGES! Running build {}", build_cmd));
|
||||||
run_build(game, build_cmd);
|
run_build(game, build_cmd);
|
||||||
|
|
40
gui.cpp
40
gui.cpp
|
@ -13,12 +13,28 @@
|
||||||
#include "ftxui/component/loop.hpp" // for Loop
|
#include "ftxui/component/loop.hpp" // for Loop
|
||||||
#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
|
#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <SFML/Audio.hpp>
|
||||||
|
|
||||||
using namespace ftxui;
|
using namespace ftxui;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace fmt;
|
using namespace fmt;
|
||||||
namespace fs = std::filesystem;
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
|
void load_sound(sf::Sound &sound, sf::SoundBuffer &buffer, const char *in_file) {
|
||||||
|
if(!buffer.loadFromFile(in_file)) {
|
||||||
|
fmt::println("Failed to load {}", in_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
sound.setBuffer(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
GUI::GUI() {
|
||||||
|
load_sound(you_died_sound, you_died_buffer, "./assets/you_died.wav");
|
||||||
|
load_sound(build_works_sound, build_works_buffer, "./assets/build_works.wav");
|
||||||
|
load_sound(build_failed_sound, build_failed_buffer, "./assets/build_failed.wav");
|
||||||
|
load_sound(building_sound, building_buffer, "./assets/building.wav");
|
||||||
|
}
|
||||||
|
|
||||||
void GUI::output(const string &msg) {
|
void GUI::output(const string &msg) {
|
||||||
lines.push_back(msg);
|
lines.push_back(msg);
|
||||||
}
|
}
|
||||||
|
@ -98,3 +114,27 @@ int GUI::main_loop(GameEngine &game, std::function<bool()> runner) {
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GUI::build_works() {
|
||||||
|
building_sound.stop();
|
||||||
|
build_works_sound.play();
|
||||||
|
output("BUILD FINISHED!");
|
||||||
|
}
|
||||||
|
|
||||||
|
void GUI::build_failed(const string &command) {
|
||||||
|
building_sound.stop();
|
||||||
|
build_failed_sound.play();
|
||||||
|
output(format("!!! BUILD FAILED. Your command correct? '{}'", command));
|
||||||
|
}
|
||||||
|
|
||||||
|
void GUI::you_died() {
|
||||||
|
building_sound.stop();
|
||||||
|
you_died_sound.play();
|
||||||
|
output("YOU DIED!");
|
||||||
|
}
|
||||||
|
|
||||||
|
void GUI::building() {
|
||||||
|
output("############# START ############");
|
||||||
|
output(">>>> Will it Build?");
|
||||||
|
building_sound.play();
|
||||||
|
}
|
||||||
|
|
17
gui.hpp
17
gui.hpp
|
@ -4,13 +4,30 @@
|
||||||
#include "game_engine.hpp"
|
#include "game_engine.hpp"
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <SFML/Audio.hpp>
|
||||||
|
|
||||||
class GUI {
|
class GUI {
|
||||||
vector<string> lines;
|
vector<string> lines;
|
||||||
|
|
||||||
|
sf::Sound you_died_sound;
|
||||||
|
sf::Sound build_works_sound;
|
||||||
|
sf::Sound build_failed_sound;
|
||||||
|
sf::Sound building_sound;
|
||||||
|
sf::SoundBuffer you_died_buffer;
|
||||||
|
sf::SoundBuffer build_works_buffer;
|
||||||
|
sf::SoundBuffer build_failed_buffer;
|
||||||
|
sf::SoundBuffer building_buffer;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
GUI();
|
||||||
|
|
||||||
void output(const string &msg);
|
void output(const string &msg);
|
||||||
|
|
||||||
int main_loop(GameEngine &game, std::function<bool()> runner);
|
int main_loop(GameEngine &game, std::function<bool()> runner);
|
||||||
|
|
||||||
|
void build_works();
|
||||||
|
void build_failed(const string &command);
|
||||||
|
void you_died();
|
||||||
|
void building();
|
||||||
};
|
};
|
||||||
|
|
|
@ -8,9 +8,15 @@ mv packagecache ./subprojects/
|
||||||
mkdir builddir
|
mkdir builddir
|
||||||
cp *.wrap subprojects
|
cp *.wrap subprojects
|
||||||
meson wrap install fmt
|
meson wrap install fmt
|
||||||
meson wrap install openal-soft
|
|
||||||
meson wrap install sqlite3
|
meson wrap install sqlite3
|
||||||
meson wrap install sqlitecpp
|
meson wrap install sqlitecpp
|
||||||
meson wrap install ftxui
|
meson wrap install ftxui
|
||||||
meson wrap install catch2
|
meson wrap install catch2
|
||||||
|
meson wrap install libpng
|
||||||
|
meson wrap install vorbis
|
||||||
|
meson wrap install ogg
|
||||||
|
meson wrap install flac
|
||||||
|
meson wrap install freetype2
|
||||||
|
meson wrap install openal-soft
|
||||||
|
meson wrap install sfml
|
||||||
meson setup builddir
|
meson setup builddir
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue