mirror of
https://github.com/vgmstream/vgmstream.git
synced 2024-11-12 01:30:49 +01:00
cleanup: remove jansson dependency
This commit is contained in:
parent
3edb6e71d6
commit
f28cd1ada9
2
.github/workflows/cmake-lx.yml
vendored
2
.github/workflows/cmake-lx.yml
vendored
@ -23,7 +23,7 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y libjansson-dev yasm libopus-dev
|
sudo apt-get install -y yasm libopus-dev
|
||||||
|
|
||||||
- name: Create build environment
|
- name: Create build environment
|
||||||
# Some projects don't allow in-source building, so create a separate build directory
|
# Some projects don't allow in-source building, so create a separate build directory
|
||||||
|
2
.github/workflows/cmake-mac.yml
vendored
2
.github/workflows/cmake-mac.yml
vendored
@ -19,7 +19,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: brew install autoconf automake cmake pkgconfig ffmpeg jansson libao libvorbis mpg123
|
run: brew install autoconf automake cmake pkgconfig ffmpeg libao libvorbis mpg123
|
||||||
|
|
||||||
- name: Cache celt
|
- name: Cache celt
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
|
7
.github/workflows/cmake-wasm.yml
vendored
7
.github/workflows/cmake-wasm.yml
vendored
@ -49,13 +49,6 @@ jobs:
|
|||||||
${{runner.workspace}}/embuild/dependencies/ffmpeg/bin/usr/local/lib
|
${{runner.workspace}}/embuild/dependencies/ffmpeg/bin/usr/local/lib
|
||||||
key: wasm-ffmpeg-${{ hashFiles('cmake/dependencies/ffmpeg.cmake') }}
|
key: wasm-ffmpeg-${{ hashFiles('cmake/dependencies/ffmpeg.cmake') }}
|
||||||
|
|
||||||
- name: Cache jansson
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
${{runner.workspace}}/embuild/dependencies/jansson/src/.libs
|
|
||||||
key: wasm-jansson-${{ hashFiles('cmake/dependencies/jansson.cmake') }}
|
|
||||||
|
|
||||||
- name: Cache atrac9
|
- name: Cache atrac9
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
|
@ -63,9 +63,6 @@ option(USE_G719 "Use libg719_decode for support ITU-T G.719" ON)
|
|||||||
option(USE_ATRAC9 "Use LibAtrac9 for support of ATRAC9" ON)
|
option(USE_ATRAC9 "Use LibAtrac9 for support of ATRAC9" ON)
|
||||||
option(USE_CELT "Use libcelt for support of FSB CELT versions 0.6.1 and 0.11.0" ON)
|
option(USE_CELT "Use libcelt for support of FSB CELT versions 0.6.1 and 0.11.0" ON)
|
||||||
option(USE_SPEEX "Use libspeex for support of SPEEX" ON)
|
option(USE_SPEEX "Use libspeex for support of SPEEX" ON)
|
||||||
if(NOT WIN32)
|
|
||||||
option(USE_JANSSON "Use jansson for JSON dumping" ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
set(MPEG_PATH CACHE PATH "Path to mpg123")
|
set(MPEG_PATH CACHE PATH "Path to mpg123")
|
||||||
@ -78,7 +75,6 @@ if(NOT WIN32)
|
|||||||
set(CELT_0061_PATH CACHE PATH "Path to CELT version 0.6.1")
|
set(CELT_0061_PATH CACHE PATH "Path to CELT version 0.6.1")
|
||||||
set(CELT_0110_PATH CACHE PATH "Path to CELT version 0.11.0")
|
set(CELT_0110_PATH CACHE PATH "Path to CELT version 0.11.0")
|
||||||
set(LIBAO_PATH CACHE PATH "Path to libao")
|
set(LIBAO_PATH CACHE PATH "Path to libao")
|
||||||
set(JANSSON_PATH CACHE PATH "Path to jansson")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Build choices
|
# Build choices
|
||||||
@ -158,7 +154,6 @@ include(dependencies/g719)
|
|||||||
include(dependencies/atrac9)
|
include(dependencies/atrac9)
|
||||||
include(dependencies/celt)
|
include(dependencies/celt)
|
||||||
include(dependencies/speex)
|
include(dependencies/speex)
|
||||||
include(dependencies/jansson)
|
|
||||||
include(dependencies/audacious)
|
include(dependencies/audacious)
|
||||||
|
|
||||||
if(USE_G7221)
|
if(USE_G7221)
|
||||||
@ -273,7 +268,6 @@ message(STATUS " FSB CELT: ${USE_CELT} ${CELT_SOURCE}")
|
|||||||
message(STATUS " SPEEX: ${USE_SPEEX} ${SPEEX_SOURCE}")
|
message(STATUS " SPEEX: ${USE_SPEEX} ${SPEEX_SOURCE}")
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
message(STATUS " LIBAO: ${BUILD_V123} ${LIBAO_SOURCE}")
|
message(STATUS " LIBAO: ${BUILD_V123} ${LIBAO_SOURCE}")
|
||||||
message(STATUS " Jansson: ${USE_JANSSON} ${JANSSON_SOURCE}")
|
|
||||||
endif()
|
endif()
|
||||||
message(STATUS "")
|
message(STATUS "")
|
||||||
|
|
||||||
|
@ -10,12 +10,6 @@ set_target_properties(vgmstream_cli PROPERTIES
|
|||||||
# Link to the vgmstream library
|
# Link to the vgmstream library
|
||||||
target_link_libraries(vgmstream_cli libvgmstream)
|
target_link_libraries(vgmstream_cli libvgmstream)
|
||||||
|
|
||||||
# Link to Jansson, if we have it
|
|
||||||
if (USE_JANSSON)
|
|
||||||
target_compile_definitions(vgmstream_cli PRIVATE HAVE_JSON)
|
|
||||||
target_include_directories(vgmstream_cli PRIVATE ${JANSSON_INCLUDE_DIRS})
|
|
||||||
target_link_libraries(vgmstream_cli jansson)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
setup_target(vgmstream_cli TRUE)
|
setup_target(vgmstream_cli TRUE)
|
||||||
|
|
||||||
|
@ -1,57 +0,0 @@
|
|||||||
if(NOT WIN32 AND USE_JANSSON)
|
|
||||||
if(NOT JANSSON_PATH AND NOT EMSCRIPTEN)
|
|
||||||
find_package(PkgConfig REQUIRED)
|
|
||||||
pkg_check_modules(JANSSON jansson>=2.3)
|
|
||||||
|
|
||||||
if(JANSSON_FOUND)
|
|
||||||
set(JANSSON_SOURCE "(system)")
|
|
||||||
set(JANSSON_PKG libjansson)
|
|
||||||
link_directories(${JANSSON_LIBRARY_DIRS})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
if(JANSSON_PATH OR EMSCRIPTEN OR NOT JANSSON_FOUND)
|
|
||||||
FetchDependency(JANSSON
|
|
||||||
DIR jansson
|
|
||||||
GIT_REPOSITORY https://github.com/akheron/jansson
|
|
||||||
GIT_TAG v2.14
|
|
||||||
)
|
|
||||||
|
|
||||||
if(JANSSON_PATH)
|
|
||||||
set(JANSSON_LINK_PATH ${JANSSON_BIN}/src/.libs/libjansson.a)
|
|
||||||
set(JANSSON_INCLUDE_DIRS ${JANSSON_PATH}/src)
|
|
||||||
|
|
||||||
if(NOT EXISTS ${JANSSON_PATH}/configure)
|
|
||||||
add_custom_target(JANSSON_AUTORECONF
|
|
||||||
COMMAND autoreconf -iv
|
|
||||||
BYPRODUCTS ${JANSSON_PATH}/configure
|
|
||||||
WORKING_DIRECTORY ${JANSSON_PATH}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
file(MAKE_DIRECTORY ${JANSSON_BIN})
|
|
||||||
add_custom_target(JANSSON_CONFIGURE
|
|
||||||
COMMAND "${JANSSON_PATH}/configure" --enable-static --disable-shared CC="${CMAKE_C_COMPILER}" AR="${CMAKE_AR}" RANLIB="${CMAKE_RANLIB}"
|
|
||||||
DEPENDS ${JANSSON_PATH}/configure
|
|
||||||
BYPRODUCTS ${JANSSON_BIN}/Makefile
|
|
||||||
WORKING_DIRECTORY ${JANSSON_BIN}
|
|
||||||
)
|
|
||||||
add_custom_target(JANSSON_MAKE
|
|
||||||
COMMAND make
|
|
||||||
DEPENDS ${JANSSON_BIN}/Makefile
|
|
||||||
BYPRODUCTS ${JANSSON_LINK_PATH} ${JANSSON_BIN}
|
|
||||||
WORKING_DIRECTORY ${JANSSON_BIN}
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(jansson STATIC IMPORTED)
|
|
||||||
if(NOT EXISTS ${JANSSON_LINK_PATH})
|
|
||||||
add_dependencies(jansson JANSSON_MAKE)
|
|
||||||
endif()
|
|
||||||
set_target_properties(jansson PROPERTIES
|
|
||||||
IMPORTED_LOCATION ${JANSSON_LINK_PATH}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
if(NOT USE_JANSSON)
|
|
||||||
unset(JANSSON_SOURCE)
|
|
||||||
endif()
|
|
@ -62,11 +62,6 @@ PKG_CHECK_MODULES(AO, [ao >= 1.1.0], have_libao=yes,
|
|||||||
[AC_MSG_WARN([Cannot find libao - will not build vgmstream123])])
|
[AC_MSG_WARN([Cannot find libao - will not build vgmstream123])])
|
||||||
AM_CONDITIONAL(HAVE_LIBAO, test "$have_libao" = yes)
|
AM_CONDITIONAL(HAVE_LIBAO, test "$have_libao" = yes)
|
||||||
|
|
||||||
have_jansson=no
|
|
||||||
PKG_CHECK_MODULES(JANSSON, [jansson >= 2.3], have_jansson=yes,
|
|
||||||
[AC_MSG_WARN([Cannot find jansson - will disable JSON dumping in CLI])])
|
|
||||||
AM_CONDITIONAL(HAVE_JANSSON, test "$have_jansson" = yes)
|
|
||||||
|
|
||||||
if test "_$GCC" = _yes
|
if test "_$GCC" = _yes
|
||||||
then
|
then
|
||||||
CFLAGS="$CFLAGS -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-but-set-variable"
|
CFLAGS="$CFLAGS -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-but-set-variable"
|
||||||
|
@ -84,8 +84,6 @@ sudo apt-get install -y libmpg123-dev libvorbis-dev libspeex-dev
|
|||||||
sudo apt-get install -y libavformat-dev libavcodec-dev libavutil-dev libswresample-dev
|
sudo apt-get install -y libavformat-dev libavcodec-dev libavutil-dev libswresample-dev
|
||||||
# for vgmstream123 and audacious
|
# for vgmstream123 and audacious
|
||||||
sudo apt-get install -y libao-dev audacious-dev
|
sudo apt-get install -y libao-dev audacious-dev
|
||||||
# for JSON dumping
|
|
||||||
sudo apt-get install -y libjansson-dev
|
|
||||||
# for static builds
|
# for static builds
|
||||||
sudo apt-get install -y yasm libopus-dev
|
sudo apt-get install -y yasm libopus-dev
|
||||||
# actual cmake
|
# actual cmake
|
||||||
@ -138,8 +136,6 @@ The following option is currently only available for **Windows**:
|
|||||||
|
|
||||||
The following option is only available for **\*nix-based OSes**:
|
The following option is only available for **\*nix-based OSes**:
|
||||||
|
|
||||||
- **USE_JANSSON**: Chooses if you wish to use libjansson for support of JSON dumping capabilities. The default is `ON`.
|
|
||||||
|
|
||||||
#### Build Options
|
#### Build Options
|
||||||
|
|
||||||
All of these options are of type BOOL and can be set to either `ON` or `OFF`. Example usage: `cmake .. -DBUILD_CLI=ON`
|
All of these options are of type BOOL and can be set to either `ON` or `OFF`. Example usage: `cmake .. -DBUILD_CLI=ON`
|
||||||
|
@ -1,386 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2009-2016 Petri Lehtinen <petri@digip.org>
|
|
||||||
*
|
|
||||||
* Jansson is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the MIT license. See LICENSE for details.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef JANSSON_H
|
|
||||||
#define JANSSON_H
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h> /* for size_t */
|
|
||||||
|
|
||||||
#include "jansson_config.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* version */
|
|
||||||
|
|
||||||
#define JANSSON_MAJOR_VERSION 2
|
|
||||||
#define JANSSON_MINOR_VERSION 13
|
|
||||||
#define JANSSON_MICRO_VERSION 1
|
|
||||||
|
|
||||||
/* Micro version is omitted if it's 0 */
|
|
||||||
#define JANSSON_VERSION "2.13.1"
|
|
||||||
|
|
||||||
/* Version as a 3-byte hex number, e.g. 0x010201 == 1.2.1. Use this
|
|
||||||
for numeric comparisons, e.g. #if JANSSON_VERSION_HEX >= ... */
|
|
||||||
#define JANSSON_VERSION_HEX \
|
|
||||||
((JANSSON_MAJOR_VERSION << 16) | (JANSSON_MINOR_VERSION << 8) | \
|
|
||||||
(JANSSON_MICRO_VERSION << 0))
|
|
||||||
|
|
||||||
/* If __atomic or __sync builtins are available the library is thread
|
|
||||||
* safe for all read-only functions plus reference counting. */
|
|
||||||
#if JSON_HAVE_ATOMIC_BUILTINS || JSON_HAVE_SYNC_BUILTINS
|
|
||||||
#define JANSSON_THREAD_SAFE_REFCOUNT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__GNUC__) || defined(__clang__)
|
|
||||||
#define JANSSON_ATTRS(x) __attribute__(x)
|
|
||||||
#else
|
|
||||||
#define JANSSON_ATTRS(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* types */
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
JSON_OBJECT,
|
|
||||||
JSON_ARRAY,
|
|
||||||
JSON_STRING,
|
|
||||||
JSON_INTEGER,
|
|
||||||
JSON_REAL,
|
|
||||||
JSON_TRUE,
|
|
||||||
JSON_FALSE,
|
|
||||||
JSON_NULL
|
|
||||||
} json_type;
|
|
||||||
|
|
||||||
typedef struct json_t {
|
|
||||||
json_type type;
|
|
||||||
volatile size_t refcount;
|
|
||||||
} json_t;
|
|
||||||
|
|
||||||
#ifndef JANSSON_USING_CMAKE /* disabled if using cmake */
|
|
||||||
#if JSON_INTEGER_IS_LONG_LONG
|
|
||||||
#ifdef _WIN32
|
|
||||||
#define JSON_INTEGER_FORMAT "I64d"
|
|
||||||
#else
|
|
||||||
#define JSON_INTEGER_FORMAT "lld"
|
|
||||||
#endif
|
|
||||||
typedef long long json_int_t;
|
|
||||||
#else
|
|
||||||
#define JSON_INTEGER_FORMAT "ld"
|
|
||||||
typedef long json_int_t;
|
|
||||||
#endif /* JSON_INTEGER_IS_LONG_LONG */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define json_typeof(json) ((json)->type)
|
|
||||||
#define json_is_object(json) ((json) && json_typeof(json) == JSON_OBJECT)
|
|
||||||
#define json_is_array(json) ((json) && json_typeof(json) == JSON_ARRAY)
|
|
||||||
#define json_is_string(json) ((json) && json_typeof(json) == JSON_STRING)
|
|
||||||
#define json_is_integer(json) ((json) && json_typeof(json) == JSON_INTEGER)
|
|
||||||
#define json_is_real(json) ((json) && json_typeof(json) == JSON_REAL)
|
|
||||||
#define json_is_number(json) (json_is_integer(json) || json_is_real(json))
|
|
||||||
#define json_is_true(json) ((json) && json_typeof(json) == JSON_TRUE)
|
|
||||||
#define json_is_false(json) ((json) && json_typeof(json) == JSON_FALSE)
|
|
||||||
#define json_boolean_value json_is_true
|
|
||||||
#define json_is_boolean(json) (json_is_true(json) || json_is_false(json))
|
|
||||||
#define json_is_null(json) ((json) && json_typeof(json) == JSON_NULL)
|
|
||||||
|
|
||||||
/* construction, destruction, reference counting */
|
|
||||||
|
|
||||||
json_t *json_object(void);
|
|
||||||
json_t *json_array(void);
|
|
||||||
json_t *json_string(const char *value);
|
|
||||||
json_t *json_stringn(const char *value, size_t len);
|
|
||||||
json_t *json_string_nocheck(const char *value);
|
|
||||||
json_t *json_stringn_nocheck(const char *value, size_t len);
|
|
||||||
json_t *json_integer(json_int_t value);
|
|
||||||
json_t *json_real(double value);
|
|
||||||
json_t *json_true(void);
|
|
||||||
json_t *json_false(void);
|
|
||||||
#define json_boolean(val) ((val) ? json_true() : json_false())
|
|
||||||
json_t *json_null(void);
|
|
||||||
|
|
||||||
/* do not call JSON_INTERNAL_INCREF or JSON_INTERNAL_DECREF directly */
|
|
||||||
#if JSON_HAVE_ATOMIC_BUILTINS
|
|
||||||
#define JSON_INTERNAL_INCREF(json) \
|
|
||||||
__atomic_add_fetch(&json->refcount, 1, __ATOMIC_ACQUIRE)
|
|
||||||
#define JSON_INTERNAL_DECREF(json) \
|
|
||||||
__atomic_sub_fetch(&json->refcount, 1, __ATOMIC_RELEASE)
|
|
||||||
#elif JSON_HAVE_SYNC_BUILTINS
|
|
||||||
#define JSON_INTERNAL_INCREF(json) __sync_add_and_fetch(&json->refcount, 1)
|
|
||||||
#define JSON_INTERNAL_DECREF(json) __sync_sub_and_fetch(&json->refcount, 1)
|
|
||||||
#else
|
|
||||||
#define JSON_INTERNAL_INCREF(json) (++json->refcount)
|
|
||||||
#define JSON_INTERNAL_DECREF(json) (--json->refcount)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static JSON_INLINE json_t *json_incref(json_t *json) {
|
|
||||||
if (json && json->refcount != (size_t)-1)
|
|
||||||
JSON_INTERNAL_INCREF(json);
|
|
||||||
return json;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* do not call json_delete directly */
|
|
||||||
void json_delete(json_t *json);
|
|
||||||
|
|
||||||
static JSON_INLINE void json_decref(json_t *json) {
|
|
||||||
if (json && json->refcount != (size_t)-1 && JSON_INTERNAL_DECREF(json) == 0)
|
|
||||||
json_delete(json);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(__GNUC__) || defined(__clang__)
|
|
||||||
static JSON_INLINE void json_decrefp(json_t **json) {
|
|
||||||
if (json) {
|
|
||||||
json_decref(*json);
|
|
||||||
*json = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#define json_auto_t json_t __attribute__((cleanup(json_decrefp)))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* error reporting */
|
|
||||||
|
|
||||||
#define JSON_ERROR_TEXT_LENGTH 160
|
|
||||||
#define JSON_ERROR_SOURCE_LENGTH 80
|
|
||||||
|
|
||||||
typedef struct json_error_t {
|
|
||||||
int line;
|
|
||||||
int column;
|
|
||||||
int position;
|
|
||||||
char source[JSON_ERROR_SOURCE_LENGTH];
|
|
||||||
char text[JSON_ERROR_TEXT_LENGTH];
|
|
||||||
} json_error_t;
|
|
||||||
|
|
||||||
enum json_error_code {
|
|
||||||
json_error_unknown,
|
|
||||||
json_error_out_of_memory,
|
|
||||||
json_error_stack_overflow,
|
|
||||||
json_error_cannot_open_file,
|
|
||||||
json_error_invalid_argument,
|
|
||||||
json_error_invalid_utf8,
|
|
||||||
json_error_premature_end_of_input,
|
|
||||||
json_error_end_of_input_expected,
|
|
||||||
json_error_invalid_syntax,
|
|
||||||
json_error_invalid_format,
|
|
||||||
json_error_wrong_type,
|
|
||||||
json_error_null_character,
|
|
||||||
json_error_null_value,
|
|
||||||
json_error_null_byte_in_key,
|
|
||||||
json_error_duplicate_key,
|
|
||||||
json_error_numeric_overflow,
|
|
||||||
json_error_item_not_found,
|
|
||||||
json_error_index_out_of_range
|
|
||||||
};
|
|
||||||
|
|
||||||
static JSON_INLINE enum json_error_code json_error_code(const json_error_t *e) {
|
|
||||||
return (enum json_error_code)e->text[JSON_ERROR_TEXT_LENGTH - 1];
|
|
||||||
}
|
|
||||||
|
|
||||||
/* getters, setters, manipulation */
|
|
||||||
|
|
||||||
void json_object_seed(size_t seed);
|
|
||||||
size_t json_object_size(const json_t *object);
|
|
||||||
json_t *json_object_get(const json_t *object, const char *key)
|
|
||||||
JANSSON_ATTRS((warn_unused_result));
|
|
||||||
int json_object_set_new(json_t *object, const char *key, json_t *value);
|
|
||||||
int json_object_set_new_nocheck(json_t *object, const char *key, json_t *value);
|
|
||||||
int json_object_del(json_t *object, const char *key);
|
|
||||||
int json_object_clear(json_t *object);
|
|
||||||
int json_object_update(json_t *object, json_t *other);
|
|
||||||
int json_object_update_existing(json_t *object, json_t *other);
|
|
||||||
int json_object_update_missing(json_t *object, json_t *other);
|
|
||||||
int json_object_update_recursive(json_t *object, json_t *other);
|
|
||||||
void *json_object_iter(json_t *object);
|
|
||||||
void *json_object_iter_at(json_t *object, const char *key);
|
|
||||||
void *json_object_key_to_iter(const char *key);
|
|
||||||
void *json_object_iter_next(json_t *object, void *iter);
|
|
||||||
const char *json_object_iter_key(void *iter);
|
|
||||||
json_t *json_object_iter_value(void *iter);
|
|
||||||
int json_object_iter_set_new(json_t *object, void *iter, json_t *value);
|
|
||||||
|
|
||||||
#define json_object_foreach(object, key, value) \
|
|
||||||
for (key = json_object_iter_key(json_object_iter(object)); \
|
|
||||||
key && (value = json_object_iter_value(json_object_key_to_iter(key))); \
|
|
||||||
key = json_object_iter_key( \
|
|
||||||
json_object_iter_next(object, json_object_key_to_iter(key))))
|
|
||||||
|
|
||||||
#define json_object_foreach_safe(object, n, key, value) \
|
|
||||||
for (key = json_object_iter_key(json_object_iter(object)), \
|
|
||||||
n = json_object_iter_next(object, json_object_key_to_iter(key)); \
|
|
||||||
key && (value = json_object_iter_value(json_object_key_to_iter(key))); \
|
|
||||||
key = json_object_iter_key(n), \
|
|
||||||
n = json_object_iter_next(object, json_object_key_to_iter(key)))
|
|
||||||
|
|
||||||
#define json_array_foreach(array, index, value) \
|
|
||||||
for (index = 0; \
|
|
||||||
index < json_array_size(array) && (value = json_array_get(array, index)); \
|
|
||||||
index++)
|
|
||||||
|
|
||||||
static JSON_INLINE int json_object_set(json_t *object, const char *key, json_t *value) {
|
|
||||||
return json_object_set_new(object, key, json_incref(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSON_INLINE int json_object_set_nocheck(json_t *object, const char *key,
|
|
||||||
json_t *value) {
|
|
||||||
return json_object_set_new_nocheck(object, key, json_incref(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSON_INLINE int json_object_iter_set(json_t *object, void *iter, json_t *value) {
|
|
||||||
return json_object_iter_set_new(object, iter, json_incref(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSON_INLINE int json_object_update_new(json_t *object, json_t *other) {
|
|
||||||
int ret = json_object_update(object, other);
|
|
||||||
json_decref(other);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSON_INLINE int json_object_update_existing_new(json_t *object, json_t *other) {
|
|
||||||
int ret = json_object_update_existing(object, other);
|
|
||||||
json_decref(other);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSON_INLINE int json_object_update_missing_new(json_t *object, json_t *other) {
|
|
||||||
int ret = json_object_update_missing(object, other);
|
|
||||||
json_decref(other);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t json_array_size(const json_t *array);
|
|
||||||
json_t *json_array_get(const json_t *array, size_t index)
|
|
||||||
JANSSON_ATTRS((warn_unused_result));
|
|
||||||
int json_array_set_new(json_t *array, size_t index, json_t *value);
|
|
||||||
int json_array_append_new(json_t *array, json_t *value);
|
|
||||||
int json_array_insert_new(json_t *array, size_t index, json_t *value);
|
|
||||||
int json_array_remove(json_t *array, size_t index);
|
|
||||||
int json_array_clear(json_t *array);
|
|
||||||
int json_array_extend(json_t *array, json_t *other);
|
|
||||||
|
|
||||||
static JSON_INLINE int json_array_set(json_t *array, size_t ind, json_t *value) {
|
|
||||||
return json_array_set_new(array, ind, json_incref(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSON_INLINE int json_array_append(json_t *array, json_t *value) {
|
|
||||||
return json_array_append_new(array, json_incref(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSON_INLINE int json_array_insert(json_t *array, size_t ind, json_t *value) {
|
|
||||||
return json_array_insert_new(array, ind, json_incref(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *json_string_value(const json_t *string);
|
|
||||||
size_t json_string_length(const json_t *string);
|
|
||||||
json_int_t json_integer_value(const json_t *integer);
|
|
||||||
double json_real_value(const json_t *real);
|
|
||||||
double json_number_value(const json_t *json);
|
|
||||||
|
|
||||||
int json_string_set(json_t *string, const char *value);
|
|
||||||
int json_string_setn(json_t *string, const char *value, size_t len);
|
|
||||||
int json_string_set_nocheck(json_t *string, const char *value);
|
|
||||||
int json_string_setn_nocheck(json_t *string, const char *value, size_t len);
|
|
||||||
int json_integer_set(json_t *integer, json_int_t value);
|
|
||||||
int json_real_set(json_t *real, double value);
|
|
||||||
|
|
||||||
/* pack, unpack */
|
|
||||||
|
|
||||||
json_t *json_pack(const char *fmt, ...) JANSSON_ATTRS((warn_unused_result));
|
|
||||||
json_t *json_pack_ex(json_error_t *error, size_t flags, const char *fmt, ...)
|
|
||||||
JANSSON_ATTRS((warn_unused_result));
|
|
||||||
json_t *json_vpack_ex(json_error_t *error, size_t flags, const char *fmt, va_list ap)
|
|
||||||
JANSSON_ATTRS((warn_unused_result));
|
|
||||||
|
|
||||||
#define JSON_VALIDATE_ONLY 0x1
|
|
||||||
#define JSON_STRICT 0x2
|
|
||||||
|
|
||||||
int json_unpack(json_t *root, const char *fmt, ...);
|
|
||||||
int json_unpack_ex(json_t *root, json_error_t *error, size_t flags, const char *fmt, ...);
|
|
||||||
int json_vunpack_ex(json_t *root, json_error_t *error, size_t flags, const char *fmt,
|
|
||||||
va_list ap);
|
|
||||||
|
|
||||||
/* sprintf */
|
|
||||||
|
|
||||||
json_t *json_sprintf(const char *fmt, ...)
|
|
||||||
JANSSON_ATTRS((warn_unused_result, format(printf, 1, 2)));
|
|
||||||
json_t *json_vsprintf(const char *fmt, va_list ap)
|
|
||||||
JANSSON_ATTRS((warn_unused_result, format(printf, 1, 0)));
|
|
||||||
|
|
||||||
/* equality */
|
|
||||||
|
|
||||||
int json_equal(const json_t *value1, const json_t *value2);
|
|
||||||
|
|
||||||
/* copying */
|
|
||||||
|
|
||||||
json_t *json_copy(json_t *value) JANSSON_ATTRS((warn_unused_result));
|
|
||||||
json_t *json_deep_copy(const json_t *value) JANSSON_ATTRS((warn_unused_result));
|
|
||||||
|
|
||||||
/* decoding */
|
|
||||||
|
|
||||||
#define JSON_REJECT_DUPLICATES 0x1
|
|
||||||
#define JSON_DISABLE_EOF_CHECK 0x2
|
|
||||||
#define JSON_DECODE_ANY 0x4
|
|
||||||
#define JSON_DECODE_INT_AS_REAL 0x8
|
|
||||||
#define JSON_ALLOW_NUL 0x10
|
|
||||||
|
|
||||||
typedef size_t (*json_load_callback_t)(void *buffer, size_t buflen, void *data);
|
|
||||||
|
|
||||||
json_t *json_loads(const char *input, size_t flags, json_error_t *error)
|
|
||||||
JANSSON_ATTRS((warn_unused_result));
|
|
||||||
json_t *json_loadb(const char *buffer, size_t buflen, size_t flags, json_error_t *error)
|
|
||||||
JANSSON_ATTRS((warn_unused_result));
|
|
||||||
json_t *json_loadf(FILE *input, size_t flags, json_error_t *error)
|
|
||||||
JANSSON_ATTRS((warn_unused_result));
|
|
||||||
json_t *json_loadfd(int input, size_t flags, json_error_t *error)
|
|
||||||
JANSSON_ATTRS((warn_unused_result));
|
|
||||||
json_t *json_load_file(const char *path, size_t flags, json_error_t *error)
|
|
||||||
JANSSON_ATTRS((warn_unused_result));
|
|
||||||
json_t *json_load_callback(json_load_callback_t callback, void *data, size_t flags,
|
|
||||||
json_error_t *error) JANSSON_ATTRS((warn_unused_result));
|
|
||||||
|
|
||||||
/* encoding */
|
|
||||||
|
|
||||||
#define JSON_MAX_INDENT 0x1F
|
|
||||||
#define JSON_INDENT(n) ((n)&JSON_MAX_INDENT)
|
|
||||||
#define JSON_COMPACT 0x20
|
|
||||||
#define JSON_ENSURE_ASCII 0x40
|
|
||||||
#define JSON_SORT_KEYS 0x80
|
|
||||||
#define JSON_PRESERVE_ORDER 0x100
|
|
||||||
#define JSON_ENCODE_ANY 0x200
|
|
||||||
#define JSON_ESCAPE_SLASH 0x400
|
|
||||||
#define JSON_REAL_PRECISION(n) (((n)&0x1F) << 11)
|
|
||||||
#define JSON_EMBED 0x10000
|
|
||||||
|
|
||||||
typedef int (*json_dump_callback_t)(const char *buffer, size_t size, void *data);
|
|
||||||
|
|
||||||
char *json_dumps(const json_t *json, size_t flags) JANSSON_ATTRS((warn_unused_result));
|
|
||||||
size_t json_dumpb(const json_t *json, char *buffer, size_t size, size_t flags);
|
|
||||||
int json_dumpf(const json_t *json, FILE *output, size_t flags);
|
|
||||||
int json_dumpfd(const json_t *json, int output, size_t flags);
|
|
||||||
int json_dump_file(const json_t *json, const char *path, size_t flags);
|
|
||||||
int json_dump_callback(const json_t *json, json_dump_callback_t callback, void *data,
|
|
||||||
size_t flags);
|
|
||||||
|
|
||||||
/* custom memory allocation */
|
|
||||||
|
|
||||||
typedef void *(*json_malloc_t)(size_t);
|
|
||||||
typedef void (*json_free_t)(void *);
|
|
||||||
|
|
||||||
void json_set_alloc_funcs(json_malloc_t malloc_fn, json_free_t free_fn);
|
|
||||||
void json_get_alloc_funcs(json_malloc_t *malloc_fn, json_free_t *free_fn);
|
|
||||||
|
|
||||||
/* runtime version checking */
|
|
||||||
|
|
||||||
const char *jansson_version_str(void);
|
|
||||||
int jansson_version_cmp(int major, int minor, int micro);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,55 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2010-2016 Petri Lehtinen <petri@digip.org>
|
|
||||||
*
|
|
||||||
* Jansson is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the MIT license. See LICENSE for details.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* This file specifies a part of the site-specific configuration for
|
|
||||||
* Jansson, namely those things that affect the public API in
|
|
||||||
* jansson.h.
|
|
||||||
*
|
|
||||||
* The CMake system will generate the jansson_config.h file and
|
|
||||||
* copy it to the build and install directories.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef JANSSON_CONFIG_H
|
|
||||||
#define JANSSON_CONFIG_H
|
|
||||||
|
|
||||||
/* Define this so that we can disable scattered automake configuration in source files */
|
|
||||||
#ifndef JANSSON_USING_CMAKE
|
|
||||||
#define JANSSON_USING_CMAKE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* If your compiler supports the inline keyword in C, JSON_INLINE is
|
|
||||||
defined to `inline', otherwise empty. In C++, the inline is always
|
|
||||||
supported. */
|
|
||||||
#if defined(_MSC_VER) && (_MSC_VER < 1800) && !defined(__cplusplus)
|
|
||||||
#define JSON_INLINE __inline
|
|
||||||
#else
|
|
||||||
#define JSON_INLINE inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#define json_int_t long
|
|
||||||
#define json_strtoint strtol
|
|
||||||
#define JSON_INTEGER_FORMAT "ld"
|
|
||||||
|
|
||||||
|
|
||||||
/* If locale.h and localeconv() are available, define to 1, otherwise to 0. */
|
|
||||||
#define JSON_HAVE_LOCALECONV 1
|
|
||||||
|
|
||||||
/* If __atomic builtins are available they will be used to manage
|
|
||||||
reference counts of json_t. */
|
|
||||||
#define JSON_HAVE_ATOMIC_BUILTINS 0
|
|
||||||
|
|
||||||
/* If __atomic builtins are not available we try using __sync builtins
|
|
||||||
to manage reference counts of json_t. */
|
|
||||||
#define JSON_HAVE_SYNC_BUILTINS 0
|
|
||||||
|
|
||||||
/* Maximum recursion depth for parsing JSON input.
|
|
||||||
This limits the depth of e.g. array-within-array constructions. */
|
|
||||||
#define JSON_PARSER_MAX_DEPTH 2048
|
|
||||||
|
|
||||||
#endif
|
|
@ -94,11 +94,6 @@
|
|||||||
<Command>lib /def:libspeex-1.def /machine:x86 /out:libspeex-1.lib</Command>
|
<Command>lib /def:libspeex-1.def /machine:x86 /out:libspeex-1.lib</Command>
|
||||||
<Outputs>libspeex-1.lib;libspeex-1.exp;%(Outputs)</Outputs>
|
<Outputs>libspeex-1.lib;libspeex-1.exp;%(Outputs)</Outputs>
|
||||||
</CustomBuild>
|
</CustomBuild>
|
||||||
<CustomBuild Include="jansson.def">
|
|
||||||
<Message>Building library stub</Message>
|
|
||||||
<Command>lib /def:jansson.def /machine:x86 /out:jansson.lib</Command>
|
|
||||||
<Outputs>jansson.lib;jansson.exp;%(Outputs)</Outputs>
|
|
||||||
</CustomBuild>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition="'$(Platform)'=='x64'">
|
<ItemGroup Condition="'$(Platform)'=='x64'">
|
||||||
<CustomBuild Include="libmpg123-0.def">
|
<CustomBuild Include="libmpg123-0.def">
|
||||||
|
@ -1,78 +0,0 @@
|
|||||||
EXPORTS
|
|
||||||
json_delete
|
|
||||||
json_true
|
|
||||||
json_false
|
|
||||||
json_null
|
|
||||||
json_sprintf
|
|
||||||
json_vsprintf
|
|
||||||
json_string
|
|
||||||
json_stringn
|
|
||||||
json_string_nocheck
|
|
||||||
json_stringn_nocheck
|
|
||||||
json_string_value
|
|
||||||
json_string_length
|
|
||||||
json_string_set
|
|
||||||
json_string_setn
|
|
||||||
json_string_set_nocheck
|
|
||||||
json_string_setn_nocheck
|
|
||||||
json_integer
|
|
||||||
json_integer_value
|
|
||||||
json_integer_set
|
|
||||||
json_real
|
|
||||||
json_real_value
|
|
||||||
json_real_set
|
|
||||||
json_number_value
|
|
||||||
json_array
|
|
||||||
json_array_size
|
|
||||||
json_array_get
|
|
||||||
json_array_set_new
|
|
||||||
json_array_append_new
|
|
||||||
json_array_insert_new
|
|
||||||
json_array_remove
|
|
||||||
json_array_clear
|
|
||||||
json_array_extend
|
|
||||||
json_object
|
|
||||||
json_object_size
|
|
||||||
json_object_get
|
|
||||||
json_object_set_new
|
|
||||||
json_object_set_new_nocheck
|
|
||||||
json_object_del
|
|
||||||
json_object_clear
|
|
||||||
json_object_update
|
|
||||||
json_object_update_existing
|
|
||||||
json_object_update_missing
|
|
||||||
json_object_update_recursive
|
|
||||||
json_object_iter
|
|
||||||
json_object_iter_at
|
|
||||||
json_object_iter_next
|
|
||||||
json_object_iter_key
|
|
||||||
json_object_iter_value
|
|
||||||
json_object_iter_set_new
|
|
||||||
json_object_key_to_iter
|
|
||||||
json_object_seed
|
|
||||||
json_dumps
|
|
||||||
json_dumpb
|
|
||||||
json_dumpf
|
|
||||||
json_dumpfd
|
|
||||||
json_dump_file
|
|
||||||
json_dump_callback
|
|
||||||
json_loads
|
|
||||||
json_loadb
|
|
||||||
json_loadf
|
|
||||||
json_loadfd
|
|
||||||
json_load_file
|
|
||||||
json_load_callback
|
|
||||||
json_equal
|
|
||||||
json_copy
|
|
||||||
json_deep_copy
|
|
||||||
json_pack
|
|
||||||
json_pack_ex
|
|
||||||
json_vpack_ex
|
|
||||||
json_unpack
|
|
||||||
json_unpack_ex
|
|
||||||
json_vunpack_ex
|
|
||||||
json_set_alloc_funcs
|
|
||||||
json_get_alloc_funcs
|
|
||||||
jansson_version_str
|
|
||||||
jansson_version_cmp
|
|
||||||
|
|
Binary file not shown.
@ -11,7 +11,6 @@ sudo apt-get install libavformat-dev libavcodec-dev libavutil-dev libswresample-
|
|||||||
sudo apt-get install yasm libopus-dev
|
sudo apt-get install yasm libopus-dev
|
||||||
# optional: for vgmstream 123 and audacious
|
# optional: for vgmstream 123 and audacious
|
||||||
sudo apt-get install -y libao-dev audacious-dev
|
sudo apt-get install -y libao-dev audacious-dev
|
||||||
#sudo apt-get install libjansson-dev
|
|
||||||
|
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
|
@ -228,7 +228,7 @@ $fb2kFiles64 = @(
|
|||||||
)
|
)
|
||||||
|
|
||||||
$fb2kFiles_remove = @(
|
$fb2kFiles_remove = @(
|
||||||
"bin/foobar2000/jansson.dll"
|
"bin/foobar2000/xxxx.dll"
|
||||||
)
|
)
|
||||||
|
|
||||||
$cliPdbFiles32 = @(
|
$cliPdbFiles32 = @(
|
||||||
|
@ -47,7 +47,7 @@
|
|||||||
<VWmpPreprocessorDefinitions>$(VCmnPreprocessorDefinitions);IN_VGMSTREAM_EXPORTS;VGM_WINAMP_UNICODE</VWmpPreprocessorDefinitions>
|
<VWmpPreprocessorDefinitions>$(VCmnPreprocessorDefinitions);IN_VGMSTREAM_EXPORTS;VGM_WINAMP_UNICODE</VWmpPreprocessorDefinitions>
|
||||||
<!-- link .lib -->
|
<!-- link .lib -->
|
||||||
<VCmnAdditionalDependencies32>../ext_libs/libvorbis.lib;../ext_libs/libmpg123-0.lib;../ext_libs/libg719_decode.lib;../ext_libs/avcodec.lib;../ext_libs/avformat.lib;../ext_libs/avutil.lib;../ext_libs/swresample.lib;../ext_libs/libatrac9.lib;../ext_libs/libcelt-0061.lib;../ext_libs/libcelt-0110.lib;../ext_libs/libspeex-1.lib</VCmnAdditionalDependencies32>
|
<VCmnAdditionalDependencies32>../ext_libs/libvorbis.lib;../ext_libs/libmpg123-0.lib;../ext_libs/libg719_decode.lib;../ext_libs/avcodec.lib;../ext_libs/avformat.lib;../ext_libs/avutil.lib;../ext_libs/swresample.lib;../ext_libs/libatrac9.lib;../ext_libs/libcelt-0061.lib;../ext_libs/libcelt-0110.lib;../ext_libs/libspeex-1.lib</VCmnAdditionalDependencies32>
|
||||||
<VCliAdditionalDependencies32>$(VCmnAdditionalDependencies32);../ext_libs/jansson.lib</VCliAdditionalDependencies32>
|
<VCliAdditionalDependencies32>$(VCmnAdditionalDependencies32);</VCliAdditionalDependencies32>
|
||||||
<VFooAdditionalDependencies32>$(VCmnAdditionalDependencies32);$(VCmnDependenciesDir)/foobar/foobar2000/shared/shared-Win32.lib</VFooAdditionalDependencies32>
|
<VFooAdditionalDependencies32>$(VCmnAdditionalDependencies32);$(VCmnDependenciesDir)/foobar/foobar2000/shared/shared-Win32.lib</VFooAdditionalDependencies32>
|
||||||
<VCmnAdditionalDependencies64>../ext_libs/dll-x64/libvorbis.lib;../ext_libs/dll-x64/libmpg123-0.lib;../ext_libs/dll-x64/libg719_decode.lib;../ext_libs/dll-x64/avcodec.lib;../ext_libs/dll-x64/avformat.lib;../ext_libs/dll-x64/avutil.lib;../ext_libs/dll-x64/swresample.lib;../ext_libs/dll-x64/libatrac9.lib;../ext_libs/dll-x64/libcelt-0061.lib;../ext_libs/dll-x64/libcelt-0110.lib;../ext_libs/dll-x64/libspeex-1.lib</VCmnAdditionalDependencies64>
|
<VCmnAdditionalDependencies64>../ext_libs/dll-x64/libvorbis.lib;../ext_libs/dll-x64/libmpg123-0.lib;../ext_libs/dll-x64/libg719_decode.lib;../ext_libs/dll-x64/avcodec.lib;../ext_libs/dll-x64/avformat.lib;../ext_libs/dll-x64/avutil.lib;../ext_libs/dll-x64/swresample.lib;../ext_libs/dll-x64/libatrac9.lib;../ext_libs/dll-x64/libcelt-0061.lib;../ext_libs/dll-x64/libcelt-0110.lib;../ext_libs/dll-x64/libspeex-1.lib</VCmnAdditionalDependencies64>
|
||||||
<VCliAdditionalDependencies64>$(VCmnAdditionalDependencies64)</VCliAdditionalDependencies64>
|
<VCliAdditionalDependencies64>$(VCmnAdditionalDependencies64)</VCliAdditionalDependencies64>
|
||||||
|
Loading…
Reference in New Issue
Block a user