aboutsummaryrefslogtreecommitdiff
path: root/pdiscidurl.c
diff options
context:
space:
mode:
authorHenry Webster <hwebs@hwebs.info>2026-07-25 10:30:18 -0500
committerHenry Webster <hwebs@hwebs.info>2026-07-25 10:30:18 -0500
commitb014e15bf02f3956110b8e3b3c921922e81c912b (patch)
tree4d1a286bffd33ed69ee9d975ff801c2a95ccc0bc /pdiscidurl.c
initial commit
Diffstat (limited to 'pdiscidurl.c')
-rw-r--r--pdiscidurl.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/pdiscidurl.c b/pdiscidurl.c
new file mode 100644
index 0000000..24425a0
--- /dev/null
+++ b/pdiscidurl.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 */