From 29675ae2f2bdb0a394908aa62052b623b5f9d5cd Mon Sep 17 00:00:00 2001 From: Dan Dennedy Date: Mon, 30 May 2011 11:58:24 -0700 Subject: [PATCH] Add service metadata to xml module (WIP). --- src/modules/xml/Makefile | 1 + src/modules/xml/consumer_xml.yml | 12 ++++++++++++ src/modules/xml/factory.c | 12 ++++++++++++ src/modules/xml/producer_xml-string.yml | 12 ++++++++++++ src/modules/xml/producer_xml.yml | 12 ++++++++++++ 5 files changed, 49 insertions(+) create mode 100644 src/modules/xml/consumer_xml.yml create mode 100644 src/modules/xml/producer_xml-string.yml create mode 100644 src/modules/xml/producer_xml.yml diff --git a/src/modules/xml/Makefile b/src/modules/xml/Makefile index cdc0b1fb..8f2a4314 100644 --- a/src/modules/xml/Makefile +++ b/src/modules/xml/Makefile @@ -34,6 +34,7 @@ install: all install -m 755 $(TARGET) "$(DESTDIR)$(libdir)/mlt" install -d "$(DESTDIR)$(datadir)/mlt/xml" install -m 644 mlt-xml.dtd "$(DESTDIR)$(datadir)/mlt/xml" + install -m 644 *.yml "$(DESTDIR)$(datadir)/mlt/xml" ifneq ($(wildcard .depend),) include .depend diff --git a/src/modules/xml/consumer_xml.yml b/src/modules/xml/consumer_xml.yml new file mode 100644 index 00000000..1047b20e --- /dev/null +++ b/src/modules/xml/consumer_xml.yml @@ -0,0 +1,12 @@ +schema_version: 0.1 +type: consumer +identifier: xml +title: XML +version: 1 +copyright: Ushodaya Enterprises Limited +creator: Dan Dennedy +license: LGPLv2.1 +language: en +tags: + - Audio + - Video diff --git a/src/modules/xml/factory.c b/src/modules/xml/factory.c index 9de62282..5854adbb 100644 --- a/src/modules/xml/factory.c +++ b/src/modules/xml/factory.c @@ -19,14 +19,26 @@ */ #include +#include #include extern mlt_consumer consumer_xml_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ); extern mlt_producer producer_xml_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ); +static mlt_properties metadata( mlt_service_type type, const char *id, void *data ) +{ + char file[ PATH_MAX ]; + snprintf( file, PATH_MAX, "%s/xml/%s", mlt_environment( "MLT_DATA" ), (char*) data ); + return mlt_properties_parse_yaml( file ); +} + MLT_REPOSITORY { MLT_REGISTER( consumer_type, "xml", consumer_xml_init ); MLT_REGISTER( producer_type, "xml", producer_xml_init ); MLT_REGISTER( producer_type, "xml-string", producer_xml_init ); + + MLT_REGISTER_METADATA( consumer_type, "xml", metadata, "consumer_xml.yml" ); + MLT_REGISTER_METADATA( producer_type, "xml", metadata, "producer_xml.yml" ); + MLT_REGISTER_METADATA( producer_type, "xml-string", metadata, "producer_xml-string.yml" ); } diff --git a/src/modules/xml/producer_xml-string.yml b/src/modules/xml/producer_xml-string.yml new file mode 100644 index 00000000..8e0010e1 --- /dev/null +++ b/src/modules/xml/producer_xml-string.yml @@ -0,0 +1,12 @@ +schema_version: 0.1 +type: producer +identifier: xml-string +title: XML String +version: 1 +copyright: Ushodaya Enterprises Limited +creator: Dan Dennedy +license: LGPLv2.1 +language: en +tags: + - Audio + - Video diff --git a/src/modules/xml/producer_xml.yml b/src/modules/xml/producer_xml.yml new file mode 100644 index 00000000..ab824d00 --- /dev/null +++ b/src/modules/xml/producer_xml.yml @@ -0,0 +1,12 @@ +schema_version: 0.1 +type: producer +identifier: xml +title: XML File +version: 1 +copyright: Ushodaya Enterprises Limited +creator: Dan Dennedy +license: LGPLv2.1 +language: en +tags: + - Audio + - Video -- 2.39.2