summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRoland Reichwein <mail@reichwein.it>2025-01-12 17:57:49 +0100
committerRoland Reichwein <mail@reichwein.it>2025-01-12 17:57:49 +0100
commit6ba60f7329811a4bb3a07b1e6d81156d7f3a4ac3 (patch)
treeef35f8a046e8d679f4baef3c14a421e52eae9e15
parent208a484ca309a4919f83a385f402272039817ed9 (diff)
Added MIDIPlayer (WIP)
-rw-r--r--MIDIPlayer.cpp27
-rw-r--r--MIDIPlayer.h21
-rw-r--r--Makefile19
-rw-r--r--midiplay.cpp7
4 files changed, 67 insertions, 7 deletions
diff --git a/MIDIPlayer.cpp b/MIDIPlayer.cpp
new file mode 100644
index 0000000..41f852e
--- /dev/null
+++ b/MIDIPlayer.cpp
@@ -0,0 +1,27 @@
+#include "MIDIPlayer.h"
+
+MIDIPlayer::MIDIPlayer()
+{
+}
+
+
+void MIDIPlayer::start()
+{
+ "aplaymidi -p24 locked_out_of_heaven.midi"
+}
+
+void MIDIPlayer::stop()
+{
+}
+
+bool MIDIPlayer::is_playing()
+{
+}
+
+void MIDIPlayer::set_file(const std::string& filename)
+{
+}
+
+std::vector<std::string> MIDIPlayer::get_filelist()
+{
+}
diff --git a/MIDIPlayer.h b/MIDIPlayer.h
new file mode 100644
index 0000000..e859bed
--- /dev/null
+++ b/MIDIPlayer.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#include <string>
+#include <vector>
+
+class MIDIPlayer
+{
+public:
+ MIDIPlayer();
+
+ void start();
+
+ void stop();
+
+ bool is_playing();
+
+ void set_file(const std::string& filename);
+
+ std::vector<std::string> get_filelist();
+};
+
diff --git a/Makefile b/Makefile
index 5f24c4e..7ceb738 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,15 @@
TARGET=midiplay
+SRCS=\
+ midiplay.cpp \
+ MIDIPlayer.cpp
+
+OBJS=$(SRCS:.cpp=.o)
+
+CXX=clang++
+CXXFLAGS=-Wall -g -O2 -fPIC -std=c++20
+CXXLIBS=-lfcgi -lreichwein -lfmt
+
all: $(TARGET)
play:
@@ -8,12 +18,11 @@ play:
run-fcgi:
spawn-fcgi -a 127.0.0.1 -p 9090 -n -- ./midiplay
-midiplay.o: midiplay.cpp
- g++ -Wall -g -O2 -fPIC -o $@ -c $^
-
-$(TARGET): midiplay.o
- g++ -Wall -g -O2 -fPIC -o $@ $^ -lfcgi -lreichwein -lfmt
+%.o: %.cpp
+ $(CXX) $(CXXFLAGS) -o $@ -c $^
+$(TARGET): $(OBJS)
+ $(CXX) $(CXXFLAGS) -o $@ $^ $(CXXLIBS)
clean:
-rm -rf $(TARGET)
diff --git a/midiplay.cpp b/midiplay.cpp
index 75f33da..d5c0ef0 100644
--- a/midiplay.cpp
+++ b/midiplay.cpp
@@ -1,3 +1,5 @@
+#include "MIDIPlayer.h"
+
#include <string>
#include <fcgiapp.h>
@@ -17,7 +19,7 @@ std::string getPostData(FCGX_Request& request)
unsigned int status = FCGX_GetStr(result.data(), result.size(), request.in);
if (status != result.size()) {
- return fmt::format("Read error: {}/{}", status, result);
+ return fmt::format("Read error: {}/{}", status, result.size());
}
return result;
@@ -46,8 +48,9 @@ int main(int argc, char* argv[]) {
FCGX_PutS("Content-Type: text/xml\r\n\r\n", request.out);
std::string data = getPostData(request);
- if (data == "<data><value1>3</value1></data>")
+ if (data == "<data><command>3</command></data>") {
FCGX_PutS("<data><value1>4</value1></data>", request.out);
+ }
} else {
FCGX_PutS("Content-Type: text/text\r\n\r\n", request.out);
FCGX_PutS("Bad request method: POST expected", request.out);