xine-lib: xine-lib-1.2.13/include/xine/stree.h Source File

xine-lib 1.2.13-20230125hg15249

stree.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2021 the xine project
3 * Copyright (C) 2021 Torsten Jager <t.jager@gmx.de>
4 *
5 * This file is part of xine, a free video player.
6 *
7 * xine is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * xine is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
20 *
21 * Xine string tree library.
22 */
23
24#ifndef HAVE_XINE_STREE_H
25#define HAVE_XINE_STREE_H
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31#include <stdint.h>
32#include <xine/attributes.h>
33#include <xine/compat.h>
34
35 typedef enum {
36 XINE_STREE_AUTO = 0,
37 XINE_STREE_XML,
38 XINE_STREE_JSON,
39 XINE_STREE_URL,
40 XINE_STREE_LAST
41} xine_stree_mode_t;
42
43 typedef struct {
44 uint32_t next, prev;
45 uint32_t first_child, last_child, parent;
46 uint32_t num_children, level, index;
47 uint32_t key, value;
48} xine_stree_t;
49
52 xine_stree_t *xine_stree_load (char *buf, xine_stree_mode_t *mode) XINE_PROTECTED;
53
55void xine_stree_dump (const xine_stree_t *tree, const char *buf, uint32_t base) XINE_PROTECTED;
56
61uint32_t xine_stree_find (const xine_stree_t *tree, const char *buf, const char *path, uint32_t base, int case_sens) XINE_PROTECTED;
62
63void xine_stree_delete (xine_stree_t **tree) XINE_PROTECTED;
64
71size_t xine_string_unampersand (char *s) XINE_PROTECTED;
72
74size_t xine_string_unpercent (char *s) XINE_PROTECTED;
75
82size_t xine_string_unbackslash (char *s) XINE_PROTECTED;
83
84#ifdef __cplusplus
85}
86#endif
87
88#endif
compat.h
attributes.h
XINE_PROTECTED
#define XINE_PROTECTED
Definition attributes.h:75
xine_stree_load
xine_stree_t * xine_stree_load(char *buf, xine_stree_mode_t *mode)
Definition stree.c:774
xine_string_unbackslash
size_t xine_string_unbackslash(char *s)
Definition stree.c:90
xine_stree_dump
void xine_stree_dump(const xine_stree_t *tree, const char *buf, uint32_t base)
Definition stree.c:802
xine_stree_find
uint32_t xine_stree_find(const xine_stree_t *tree, const char *buf, const char *path, uint32_t base, int case_sens)
Definition stree.c:864
xine_stree_mode_t
xine_stree_mode_t
Definition stree.h:35
XINE_STREE_LAST
@ XINE_STREE_LAST
Definition stree.h:40
XINE_STREE_AUTO
@ XINE_STREE_AUTO
Definition stree.h:36
XINE_STREE_JSON
@ XINE_STREE_JSON
Definition stree.h:38
XINE_STREE_URL
@ XINE_STREE_URL
Definition stree.h:39
XINE_STREE_XML
@ XINE_STREE_XML
Definition stree.h:37
xine_stree_delete
void xine_stree_delete(xine_stree_t **tree)
Definition stree.c:947
xine_string_unampersand
size_t xine_string_unampersand(char *s)
Definition stree.c:198
xine_string_unpercent
size_t xine_string_unpercent(char *s)
Definition stree.c:59
xine_stree_t
Definition stree.h:43
xine_stree_t::next
uint32_t next
Definition stree.h:44
xine_stree_t::index
uint32_t index
Definition stree.h:46
xine_stree_t::first_child
uint32_t first_child
Definition stree.h:45
xine_stree_t::key
uint32_t key
Definition stree.h:47
mode
enable disable number of frames of telecine pattern sync required before mode change make frames evenly spaced for film mode(24 fps)" ) PARAM_ITEM( POST_PARAM_TYPE_BOOL