cs381/as1/as1.cpp

57 lines
1.1 KiB
C++

#include "AudioDevice.hpp"
#include "Color.hpp"
#include <raylib-cpp.hpp>
#include <iostream>
void PingButton() {
std::cout << "Ping!" << std::endl;
}
#define GUI_VOLUMECONTROL_IMPLEMENTATION
#include "VolumeControl.h"
template<typename T>
concept calls_with_no_arguments = requires(T a) {
{ a() };
};
template<typename TFunction>
void call_lambda(TFunction func) {
func();
}
int main() {
raylib::Window window(800, 600, "CS381 - Assignment 0");
raylib::AudioDevice audio;
auto guiState = InitGuiVolumeControl();
raylib::Sound ping("audio/ping.wav");
raylib::Music music("audio/price-of-freedom.mp3");
music.Play();
// play ping sound when button is pressed
auto lambdaPingButton = [&ping]() {
ping.Play();
};
call_lambda(lambdaPingButton);
InitGuiVolumeControl();
while (!window.ShouldClose()) {
window.BeginDrawing();
window.ClearBackground(raylib::Color::RayWhite());
music.Update();
music.SetVolume(guiState.MusicSliderValue / 100.0f);
GuiVolumeControl(&guiState);
window.EndDrawing();
}
delete ping;
return 0;
}