From d9633663e9efe79ffe6b18d679364c3dbb30a8af Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Fri, 5 Feb 2021 15:09:43 +0100 Subject: [PATCH] MISC: Update kara display string and add the mkv test file --- src/Makefile.am | 6 ++++- src/Makefile.in | 56 +++++++++++++++++++++++++++++++++++------ src/database/disk.sql | 2 +- src/main/mkv_test.c | 58 +++++++++++++++++++++++++++++++++++++++++++ src/mkv/utils.c | 2 +- 5 files changed, 113 insertions(+), 11 deletions(-) create mode 100644 src/main/mkv_test.c diff --git a/src/Makefile.am b/src/Makefile.am index 6d4b9724..59e7f840 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -84,7 +84,11 @@ EXTRA_DIST = database/disk.sql database/memory.sql ## MAIN FILES ## ################ -bin_PROGRAMS = lektord lkt +bin_PROGRAMS = lektord lkt mkv_test + +## Test program for the new mkv writes +mkv_test_SOURCES = main/mkv_test.c base/common.c base/segv.c mkv/mkv.c mkv/utils.c mkv/write.c base/bufferfd.c +mkv_test_LDFLAGS = -pthread -ldl -static ## The lkt client lkt_SOURCES = main/lkt.c base/cmd.c base/common.c base/segv.c diff --git a/src/Makefile.in b/src/Makefile.in index 9a9bb385..e7980a23 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -134,7 +134,8 @@ host_triplet = @host@ # TODO pour le Kubat du futur: c'est pas beau, trouver un truc pour que ça se fasse tout seul @LKT_STATIC_MODULE_TRUE@am__append_8 = module/thread.c -bin_PROGRAMS = lektord$(EXEEXT) lkt$(EXEEXT) $(am__EXEEXT_1) +bin_PROGRAMS = lektord$(EXEEXT) lkt$(EXEEXT) mkv_test$(EXEEXT) \ + $(am__EXEEXT_1) @LKT_KLKT_TRUE@am__append_9 = klkt/klkt @LKT_KLKT_TRUE@am__append_10 = $(BUILT_SOURCES) @LKT_KLKT_TRUE@am__append_11 = $(BUILT_SOURCES) @@ -270,6 +271,14 @@ lkt_LDADD = $(LDADD) lkt_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(lkt_LDFLAGS) $(LDFLAGS) -o $@ +am_mkv_test_OBJECTS = main/mkv_test.$(OBJEXT) base/common.$(OBJEXT) \ + base/segv.$(OBJEXT) mkv/mkv.$(OBJEXT) mkv/utils.$(OBJEXT) \ + mkv/write.$(OBJEXT) base/bufferfd.$(OBJEXT) +mkv_test_OBJECTS = $(am_mkv_test_OBJECTS) +mkv_test_LDADD = $(LDADD) +mkv_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(mkv_test_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -285,7 +294,8 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/inc/lektor depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__maybe_remake_depfiles = depfiles -am__depfiles_remade = base/$(DEPDIR)/cmd.Po base/$(DEPDIR)/common.Po \ +am__depfiles_remade = base/$(DEPDIR)/bufferfd.Po base/$(DEPDIR)/cmd.Po \ + base/$(DEPDIR)/common.Po \ base/$(DEPDIR)/liblektor_la-bufferfd.Plo \ base/$(DEPDIR)/liblektor_la-cmd.Plo \ base/$(DEPDIR)/liblektor_la-commands.Plo \ @@ -308,9 +318,11 @@ am__depfiles_remade = base/$(DEPDIR)/cmd.Po base/$(DEPDIR)/common.Po \ database/$(DEPDIR)/liblektor_la-user.Plo \ klkt/$(DEPDIR)/klkt-icons.qrc.Po klkt/$(DEPDIR)/klkt-klkt.Po \ klkt/$(DEPDIR)/klkt-klkt.moc.Po main/$(DEPDIR)/lkt.Po \ - main/$(DEPDIR)/server.Po mkv/$(DEPDIR)/liblektor_la-mkv.Plo \ + main/$(DEPDIR)/mkv_test.Po main/$(DEPDIR)/server.Po \ + mkv/$(DEPDIR)/liblektor_la-mkv.Plo \ mkv/$(DEPDIR)/liblektor_la-utils.Plo \ - mkv/$(DEPDIR)/liblektor_la-write.Plo \ + mkv/$(DEPDIR)/liblektor_la-write.Plo mkv/$(DEPDIR)/mkv.Po \ + mkv/$(DEPDIR)/utils.Po mkv/$(DEPDIR)/write.Po \ module/$(DEPDIR)/liblektor_la-thread.Plo \ module/$(DEPDIR)/liblktmodrepo_la-module_repo.Plo \ module/$(DEPDIR)/liblktmodrepo_la-worker.Plo \ @@ -358,11 +370,11 @@ am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(liblektor_la_SOURCES) $(liblktmodrepo_la_SOURCES) \ $(liblktmodsdl_la_SOURCES) $(klkt_klkt_SOURCES) \ - $(lektord_SOURCES) $(lkt_SOURCES) + $(lektord_SOURCES) $(lkt_SOURCES) $(mkv_test_SOURCES) DIST_SOURCES = $(am__liblektor_la_SOURCES_DIST) \ $(liblktmodrepo_la_SOURCES) $(liblktmodsdl_la_SOURCES) \ $(am__klkt_klkt_SOURCES_DIST) $(lektord_SOURCES) \ - $(lkt_SOURCES) + $(lkt_SOURCES) $(mkv_test_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -592,6 +604,8 @@ liblektor_la_LDFLAGS = -avoid-version -pthread -lsqlite3 -ldl \ @LKT_STATIC_MODULE_TRUE@liblektor_la_LIBADD = liblktmodsdl.la liblktmodrepo.la CLEANFILES = database/disk.c database/memory.c $(am__append_11) EXTRA_DIST = database/disk.sql database/memory.sql $(am__append_10) +mkv_test_SOURCES = main/mkv_test.c base/common.c base/segv.c mkv/mkv.c mkv/utils.c mkv/write.c base/bufferfd.c +mkv_test_LDFLAGS = -pthread -ldl -static lkt_SOURCES = main/lkt.c base/cmd.c base/common.c base/segv.c lkt_LDFLAGS = -pthread -ldl -static lektord_SOURCES = main/server.c @@ -899,6 +913,17 @@ base/segv.$(OBJEXT): base/$(am__dirstamp) \ lkt$(EXEEXT): $(lkt_OBJECTS) $(lkt_DEPENDENCIES) $(EXTRA_lkt_DEPENDENCIES) @rm -f lkt$(EXEEXT) $(AM_V_CCLD)$(lkt_LINK) $(lkt_OBJECTS) $(lkt_LDADD) $(LIBS) +main/mkv_test.$(OBJEXT): main/$(am__dirstamp) \ + main/$(DEPDIR)/$(am__dirstamp) +mkv/mkv.$(OBJEXT): mkv/$(am__dirstamp) mkv/$(DEPDIR)/$(am__dirstamp) +mkv/utils.$(OBJEXT): mkv/$(am__dirstamp) mkv/$(DEPDIR)/$(am__dirstamp) +mkv/write.$(OBJEXT): mkv/$(am__dirstamp) mkv/$(DEPDIR)/$(am__dirstamp) +base/bufferfd.$(OBJEXT): base/$(am__dirstamp) \ + base/$(DEPDIR)/$(am__dirstamp) + +mkv_test$(EXEEXT): $(mkv_test_OBJECTS) $(mkv_test_DEPENDENCIES) $(EXTRA_mkv_test_DEPENDENCIES) + @rm -f mkv_test$(EXEEXT) + $(AM_V_CCLD)$(mkv_test_LINK) $(mkv_test_OBJECTS) $(mkv_test_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -918,6 +943,7 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@base/$(DEPDIR)/bufferfd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@base/$(DEPDIR)/cmd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@base/$(DEPDIR)/common.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@base/$(DEPDIR)/liblektor_la-bufferfd.Plo@am__quote@ # am--include-marker @@ -945,10 +971,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@klkt/$(DEPDIR)/klkt-klkt.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@klkt/$(DEPDIR)/klkt-klkt.moc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@main/$(DEPDIR)/lkt.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@main/$(DEPDIR)/mkv_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@main/$(DEPDIR)/server.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@mkv/$(DEPDIR)/liblektor_la-mkv.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@mkv/$(DEPDIR)/liblektor_la-utils.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@mkv/$(DEPDIR)/liblektor_la-write.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@mkv/$(DEPDIR)/mkv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@mkv/$(DEPDIR)/utils.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@mkv/$(DEPDIR)/write.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@module/$(DEPDIR)/liblektor_la-thread.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@module/$(DEPDIR)/liblktmodrepo_la-module_repo.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@module/$(DEPDIR)/liblktmodrepo_la-worker.Plo@am__quote@ # am--include-marker @@ -1432,7 +1462,8 @@ clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am - -rm -f base/$(DEPDIR)/cmd.Po + -rm -f base/$(DEPDIR)/bufferfd.Po + -rm -f base/$(DEPDIR)/cmd.Po -rm -f base/$(DEPDIR)/common.Po -rm -f base/$(DEPDIR)/liblektor_la-bufferfd.Plo -rm -f base/$(DEPDIR)/liblektor_la-cmd.Plo @@ -1459,10 +1490,14 @@ distclean: distclean-am -rm -f klkt/$(DEPDIR)/klkt-klkt.Po -rm -f klkt/$(DEPDIR)/klkt-klkt.moc.Po -rm -f main/$(DEPDIR)/lkt.Po + -rm -f main/$(DEPDIR)/mkv_test.Po -rm -f main/$(DEPDIR)/server.Po -rm -f mkv/$(DEPDIR)/liblektor_la-mkv.Plo -rm -f mkv/$(DEPDIR)/liblektor_la-utils.Plo -rm -f mkv/$(DEPDIR)/liblektor_la-write.Plo + -rm -f mkv/$(DEPDIR)/mkv.Po + -rm -f mkv/$(DEPDIR)/utils.Po + -rm -f mkv/$(DEPDIR)/write.Po -rm -f module/$(DEPDIR)/liblektor_la-thread.Plo -rm -f module/$(DEPDIR)/liblktmodrepo_la-module_repo.Plo -rm -f module/$(DEPDIR)/liblktmodrepo_la-worker.Plo @@ -1516,7 +1551,8 @@ install-ps-am: installcheck-am: installcheck-binPROGRAMS maintainer-clean: maintainer-clean-am - -rm -f base/$(DEPDIR)/cmd.Po + -rm -f base/$(DEPDIR)/bufferfd.Po + -rm -f base/$(DEPDIR)/cmd.Po -rm -f base/$(DEPDIR)/common.Po -rm -f base/$(DEPDIR)/liblektor_la-bufferfd.Plo -rm -f base/$(DEPDIR)/liblektor_la-cmd.Plo @@ -1543,10 +1579,14 @@ maintainer-clean: maintainer-clean-am -rm -f klkt/$(DEPDIR)/klkt-klkt.Po -rm -f klkt/$(DEPDIR)/klkt-klkt.moc.Po -rm -f main/$(DEPDIR)/lkt.Po + -rm -f main/$(DEPDIR)/mkv_test.Po -rm -f main/$(DEPDIR)/server.Po -rm -f mkv/$(DEPDIR)/liblektor_la-mkv.Plo -rm -f mkv/$(DEPDIR)/liblektor_la-utils.Plo -rm -f mkv/$(DEPDIR)/liblektor_la-write.Plo + -rm -f mkv/$(DEPDIR)/mkv.Po + -rm -f mkv/$(DEPDIR)/utils.Po + -rm -f mkv/$(DEPDIR)/write.Po -rm -f module/$(DEPDIR)/liblektor_la-thread.Plo -rm -f module/$(DEPDIR)/liblktmodrepo_la-module_repo.Plo -rm -f module/$(DEPDIR)/liblktmodrepo_la-worker.Plo diff --git a/src/database/disk.sql b/src/database/disk.sql index befc1a34..1a5f4bf4 100644 --- a/src/database/disk.sql +++ b/src/database/disk.sql @@ -19,7 +19,7 @@ CREATE TABLE IF NOT EXISTS kara , available INTEGER CHECK(available = 0 OR available = 1) DEFAULT 1 NOT NULL , string TEXT GENERATED ALWAYS AS ( category || ' - ' || language || ' / ' || source_name || ' - ' || song_type || - song_number || ' - ' || song_name || ' [ ' || author_name || ' ]' || + song_number || ' - ' || song_name || ' [' || author_name || ']' || CASE WHEN available = 0 THEN ' (U)' ELSE '' END ) STORED ); diff --git a/src/main/mkv_test.c b/src/main/mkv_test.c new file mode 100644 index 00000000..be64642e --- /dev/null +++ b/src/main/mkv_test.c @@ -0,0 +1,58 @@ +#define _POSIX_C_SOURCE 200809L + +#include <lektor/common.h> +#include <lektor/segv.h> +#include <lektor/mkv.h> + +#include <errno.h> +#include <fcntl.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> +#include <unistd.h> +#include <signal.h> +#include <limits.h> +#include <ctype.h> + +int +main(int argc, char **argv) +{ + if (argc != 2) { + puts("ARG MUST BE A FILENAME"); + exit(EXIT_FAILURE); + } + +#define WHICH "TOTO" + + struct kara_metadata mdt = { + .song_name = WHICH "_SONG_NAME", + .source_name = WHICH "_SOURCE_NAME", + .category = WHICH "_CAT_NAME", + .language = WHICH "_LANG_NAME", + .author_name = WHICH "_AUTHOR_NAME", + .song_type = WHICH "_TYPE ", + .song_number = 42, + }; + + puts(argv[1]); + + if (kara_metadata_write(&mdt, argv[1], "/usr/bin/mkvpropedit")) { + puts("WRITE FAILED"); + exit(EXIT_FAILURE); + } + + if (kara_metadata_read(&mdt, argv[1])) { + puts("WRITE FAILED"); + exit(EXIT_FAILURE); + } + + fprintf(stdout, "title:\t%s\nsource:\t%s\ncat:\t%s\nlang:\t%s\nauthor:\t%s\ntype:\t%s%d\n", + mdt.song_name, mdt.source_name, mdt.category, mdt.language, mdt.author_name, + mdt.song_type, mdt.song_number); + + return 0; + + return 0; +} diff --git a/src/mkv/utils.c b/src/mkv/utils.c index f80bf170..ef8c557f 100644 --- a/src/mkv/utils.c +++ b/src/mkv/utils.c @@ -24,7 +24,7 @@ mdtcat(struct kara_metadata *mdt, char **ret) return; } - safe_snprintf(*ret, size, "%s - %s / %s - %s%d - %s [ %s ]", mdt->category, + safe_snprintf(*ret, size, "%s - %s / %s - %s%d - %s [%s]", mdt->category, mdt->language, mdt->source_name, mdt->song_type, mdt->song_number, mdt->song_name, mdt->author_name); } -- GitLab