aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/liboma/include/oma.h
diff options
context:
space:
mode:
authorDaniil Cherednik <dan.cherednik@gmail.com>2024-06-17 20:12:45 +0000
committerDaniil Cherednik <dan.cherednik@gmail.com>2024-06-17 22:21:52 +0200
commit23a4e5f1dd7ce24f65a2af0598d1f92af4b5c424 (patch)
tree8a259ca8363c5b15fd3605b760518cb37e6ac63c /src/lib/liboma/include/oma.h
parent73dbd1609445a0142e1e138b6b44ec6d1925cbb8 (diff)
downloadatracdenc-23a4e5f1dd7ce24f65a2af0598d1f92af4b5c424.tar.gz
[refactoring] move some libraries in to library directory
Diffstat (limited to 'src/lib/liboma/include/oma.h')
-rw-r--r--src/lib/liboma/include/oma.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/lib/liboma/include/oma.h b/src/lib/liboma/include/oma.h
new file mode 100644
index 0000000..857b0a7
--- /dev/null
+++ b/src/lib/liboma/include/oma.h
@@ -0,0 +1,78 @@
+/*
+ * This file is part of AtracDEnc.
+ *
+ * AtracDEnc 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.
+ *
+ * AtracDEnc 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 AtracDEnc; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+#ifndef OMA_H
+#define OMA_H
+
+typedef struct omafile_ctx OMAFILE;
+
+struct oma_info {
+ int codec;
+ int framesize;
+ int samplerate;
+ int channel_format;
+};
+
+enum {
+ OMAM_R = 0x1,
+ OMAM_W = 0x2,
+};
+
+enum {
+ OMAC_ID_ATRAC3 = 0,
+ OMAC_ID_ATRAC3PLUS = 1,
+ OMAC_ID_MP3 = 2,
+ OMAC_ID_LPCM = 3,
+ OMAC_ID_WMA = 5
+};
+
+enum {
+ OMA_MONO = 0,
+ OMA_STEREO = 1,
+ OMA_STEREO_JS = 2,
+ OMA_3 = 3,
+ OMA_4 = 4,
+ OMA_6 = 5,
+ OMA_7 = 6,
+ OMA_8 = 7
+
+};
+
+typedef struct oma_info oma_info_t;
+typedef int block_count_t;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+int oma_get_last_err();
+
+OMAFILE* oma_open(const char *path, int mode, oma_info_t *info);
+int oma_close(OMAFILE* oma_file);
+
+block_count_t oma_read(OMAFILE *oma_file, void *ptr, block_count_t blocks);
+block_count_t oma_write(OMAFILE *oma_file, const void *ptr, block_count_t blocks);
+
+oma_info_t* oma_get_info(OMAFILE *oma_file);
+int oma_get_bitrate(oma_info_t *info);
+const char *oma_get_codecname(oma_info_t *info);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OMA_H */