summaryrefslogtreecommitdiff
path: root/junklib.h
blob: 1733620b286c9716c501de422ba0bbf5f8bf4b20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
    DeaDBeeF - ultimate music player for GNU/Linux systems with X11
    Copyright (C) 2009-2011 Alexey Yakovenko <waker@users.sourceforge.net>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 2 of the License, or
    (at your option) any later version.

    This program 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 General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __JUNKLIB_H
#define __JUNKLIB_H

#include <stdio.h>
#include "deadbeef.h"

struct playItem_s;

int
junk_id3v1_read (struct playItem_s *it, DB_FILE *fp);

int
junk_id3v1_find (DB_FILE *fp);

int
junk_id3v1_write (FILE *fp, struct playItem_s *it, const char *enc);

int
junk_id3v2_find (DB_FILE *fp, int *psize);

int
junk_id3v2_read_full (struct playItem_s *it, DB_id3v2_tag_t *tag, DB_FILE *fp);

int
junk_id3v2_convert_24_to_23 (DB_id3v2_tag_t *tag24, DB_id3v2_tag_t *tag23);

int
junk_id3v2_convert_23_to_24 (DB_id3v2_tag_t *tag23, DB_id3v2_tag_t *tag24);

int
junk_id3v2_convert_22_to_24 (DB_id3v2_tag_t *tag22, DB_id3v2_tag_t *tag24);

int
junk_id3v2_convert_apev2_to_24 (DB_apev2_tag_t *ape, DB_id3v2_tag_t *tag24);

DB_id3v2_frame_t *
junk_id3v2_add_text_frame (DB_id3v2_tag_t *tag, const char *frame_id, const char *value);

int
junk_id3v2_remove_frames (DB_id3v2_tag_t *tag, const char *frame_id);

int
junk_id3v2_write (FILE *file, DB_id3v2_tag_t *tag);

void
junk_id3v2_free (DB_id3v2_tag_t *tag);

int
junk_id3v2_read (struct playItem_s *it, DB_FILE *fp);

int
junk_apev2_read_full (struct playItem_s *it, DB_apev2_tag_t *tag_store, DB_FILE *fp);

int
junk_apev2_read_full_mem (struct playItem_s *it, DB_apev2_tag_t *tag_store, char *mem, int memsize);

int
junk_apev2_read (struct playItem_s *it, DB_FILE *fp);

int
junk_apev2_read_mem (struct playItem_s *it, char *mem, int size);

int
junk_apev2_find (DB_FILE *fp, int32_t *psize, uint32_t *pflags, uint32_t *pnumitems);

DB_apev2_frame_t *
junk_apev2_add_text_frame (DB_apev2_tag_t *tag, const char *frame_id, const char *value);

int
junk_apev2_remove_frames (DB_apev2_tag_t *tag, const char *frame_id);

void
junk_apev2_free (DB_apev2_tag_t *tag);

int
junk_apev2_write (FILE *fp, DB_apev2_tag_t *tag, int write_header, int write_footer);

int
junk_get_leading_size_stdio (FILE *fp);

int
junk_get_leading_size (DB_FILE *fp);

const char *
junk_detect_charset (const char *s);

int
junk_iconv (const char *in, int inlen, char *out, int outlen, const char *cs_in, const char *cs_out);

int
junk_recode (const char *in, int inlen, char *out, int outlen, const char *cs);

int
junk_rewrite_tags (struct playItem_s *it, uint32_t junk_flags, int id3v2_version, const char *id3v1_encoding);

#endif // __JUNKLIB_H