aboutsummaryrefslogtreecommitdiff
path: root/discidurl.c
diff options
context:
space:
mode:
Diffstat (limited to 'discidurl.c')
-rw-r--r--discidurl.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/discidurl.c b/discidurl.c
new file mode 100644
index 0000000..24425a0
--- /dev/null
+++ b/discidurl.c
@@ -0,0 +1,65 @@
+/* --------------------------------------------------------------------------
+
+ MusicBrainz -- The Internet music metadatabase
+
+ Copyright (C) 2026 Henry J. Webster
+ Copyright (C) 2013 Johannes Dewender, Laurent Monin
+ Copyright (C) 2006 Matthias Friedrich
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, see
+ <https://www.gnu.org/licenses/>.
+
+--------------------------------------------------------------------------- */
+#ifdef _MSC_VER
+#define _CRT_SECURE_NO_WARNINGS
+#if (_MSC_VER < 1900)
+#define snprintf _snprintf
+#endif
+#endif
+
+#include <discid/discid.h>
+#include <stdio.h>
+
+#ifndef DISCID_HAVE_SPARSE_READ
+#define discid_read_sparse(disc, dev, i) discid_read(disc, dev)
+#endif
+
+int main(int argc, char *argv[]) {
+ char *device = NULL;
+ DiscId *disc;
+
+ disc = discid_new();
+
+ /* If we have an argument, use it as the device name */
+ if (argc > 1) {
+ device = argv[1];
+ } else {
+ /* this will use discid_get_default_device() internally */
+ device = NULL;
+ }
+
+ if (discid_read_sparse(disc, device, 0) == 0) {
+ fprintf(stderr, "Error: %s\n", discid_get_error_msg(disc));
+ discid_free(disc);
+ return 1;
+ }
+
+ printf("%s\n", discid_get_submission_url(disc));
+
+ discid_free(disc);
+
+ return 0;
+}
+
+/* EOF */