aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksa@vuckovic.cc>2023-11-16 19:14:34 +0100
committerAleksa Vuckovic <aleksa@vuckovic.cc>2023-11-16 19:14:34 +0100
commit00e6a8a5a32222d65df85005dc404988f9430bc7 (patch)
treea8f510577aff0f741c22f5235257e68feebd0fc9
parentca5c1242d8587d953e84c4350b625f8e819bc669 (diff)
Makefile + PaClose
-rw-r--r--.gitignore4
-rw-r--r--Makefile31
-rw-r--r--src/main.c (renamed from main.c)6
3 files changed, 40 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index cba7efc..2301d9a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
-a.out
+gtk-dav
+*.d
+*.o
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..1a0c98d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,31 @@
+CXX=g++
+CC=gcc
+
+LDFLAGS=-lportaudio $(shell pkg-config --libs gtk4 cairo)
+CXXFLAGS=-Wall $(shell pkg-config --cflags gtk4 cairo) -O3 -MD -MP
+OBJS=\
+ src/main.o
+
+.PHONY: all build run clean
+
+all: gtk-dav
+
+gtk-dav: ./Makefile $(OBJS)
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o ./gtk-dav
+
+%.o: %.c
+ $(CC) $(CXXFLAGS) -c $< -o $@
+
+%.o: %.cpp
+ $(CXX) $(CXXFLAGS) -c $< -o $@
+
+run: ./gtk-dav
+ @./gtk-dav
+
+clean:
+ @find -name "*.o" -exec rm {} \;
+ @find -name "*.d" -exec rm {} \;
+ @rm -f ./gtk-dav
+
+
+-include $(OBJECTS:.o=.d)
diff --git a/main.c b/src/main.c
index 64bceaa..e5b7988 100644
--- a/main.c
+++ b/src/main.c
@@ -47,6 +47,12 @@ int patestCallback(const void *inputBuffer, void *outputBuffer, unsigned long fr
static void select_device(GtkWidget *widget, gpointer data)
{
+ if (stream != NULL) {
+ Pa_StopStream(stream);
+ Pa_CloseStream(stream);
+ stream = NULL;
+ }
+
struct data *d = (struct data *)data;
device = d->device_num;
printf("Device %d selected\n", d->device_num);