Blame src/libbluray/bdj/bdjo_data.h

Packit 5e46da
/*
Packit 5e46da
 * This file is part of libbluray
Packit 5e46da
 * Copyright (C) 2014  Petri Hintukainen <phintuka@users.sourceforge.net>
Packit 5e46da
 *
Packit 5e46da
 * This library is free software; you can redistribute it and/or
Packit 5e46da
 * modify it under the terms of the GNU Lesser General Public
Packit 5e46da
 * License as published by the Free Software Foundation; either
Packit 5e46da
 * version 2.1 of the License, or (at your option) any later version.
Packit 5e46da
 *
Packit 5e46da
 * This library is distributed in the hope that it will be useful,
Packit 5e46da
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 5e46da
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 5e46da
 * Lesser General Public License for more details.
Packit 5e46da
 *
Packit 5e46da
 * You should have received a copy of the GNU Lesser General Public
Packit 5e46da
 * License along with this library. If not, see
Packit 5e46da
 * <http://www.gnu.org/licenses/>.
Packit 5e46da
 */
Packit 5e46da
Packit 5e46da
#if !defined(_BDJO_DATA_H_)
Packit 5e46da
#define _BDJO_DATA_H_
Packit 5e46da
Packit 5e46da
#include <stdint.h>
Packit 5e46da
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    char    default_font[6];         // default AWT font. AUXDATA/?????.otf. "*****" = none.
Packit 5e46da
    uint8_t initial_havi_config_id;  // valid only if no autostart playlist.
Packit 5e46da
    uint8_t menu_call_mask;
Packit 5e46da
    uint8_t title_search_mask;
Packit 5e46da
} BDJO_TERMINAL_INFO;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    uint8_t type;             // 1 - JAR, 2 - directory
Packit 5e46da
    char    ref_to_name[6];   // JAR/xxxxx.jar or JAR/xxxxx/
Packit 5e46da
    char    lang_code[4];     // ref. to PSR18. "*.*" = cache always. "%%%" = fallback when no language matches PSR18.
Packit 5e46da
} BDJO_APP_CACHE_ITEM;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    uint8_t              num_item;
Packit 5e46da
    BDJO_APP_CACHE_ITEM *item;
Packit 5e46da
} BDJO_APP_CACHE_INFO;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    char     name[6];
Packit 5e46da
} BDJO_PLAYLIST;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    uint8_t        access_to_all_flag;
Packit 5e46da
    uint8_t        autostart_first_playlist_flag;
Packit 5e46da
Packit 5e46da
    uint16_t       num_pl;
Packit 5e46da
    BDJO_PLAYLIST *pl;
Packit 5e46da
} BDJO_ACCESSIBLE_PLAYLISTS;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    uint16_t profile_number; /* 1: BD-ROM profile 1. 2: BD-ROM profile 2 */
Packit 5e46da
    uint8_t  major_version;
Packit 5e46da
    uint8_t  minor_version;
Packit 5e46da
    uint8_t  micro_version;
Packit 5e46da
} BDJO_APP_PROFILE;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    char  lang[4];
Packit 5e46da
    char *name;    /* UTF-8, informative name */
Packit 5e46da
} BDJO_APP_NAME;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    char *param;
Packit 5e46da
} BDJO_APP_PARAM;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    uint8_t           control_code; /* 1 - autostart, 2 - present */
Packit 5e46da
    uint8_t           type;         /* 1 - BD-J App */
Packit 5e46da
    uint32_t          org_id;
Packit 5e46da
    uint16_t          app_id;
Packit 5e46da
Packit 5e46da
    /* descriptor */
Packit 5e46da
Packit 5e46da
    uint8_t           num_profile;
Packit 5e46da
    BDJO_APP_PROFILE *profile;
Packit 5e46da
Packit 5e46da
    uint8_t           priority;
Packit 5e46da
    uint8_t           binding;
Packit 5e46da
    uint8_t           visibility;
Packit 5e46da
Packit 5e46da
    uint16_t          num_name;
Packit 5e46da
    BDJO_APP_NAME    *name;
Packit 5e46da
Packit 5e46da
    uint8_t           icon_flags;
Packit 5e46da
    char             *icon_locator; // relative to base_dir
Packit 5e46da
    char             *base_dir;     // "00000" -> 00000.jar!/ , "00000/base" -> 00000.jar!/base/
Packit 5e46da
    char             *classpath_extension; // separator ; . relative paths relative to base_dir. absolute paths refer to .jar files.
Packit 5e46da
    char             *initial_class;
Packit 5e46da
Packit 5e46da
    uint8_t           num_param;
Packit 5e46da
    BDJO_APP_PARAM   *param;
Packit 5e46da
} BDJO_APP;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    uint8_t    num_app;
Packit 5e46da
    BDJO_APP  *app;
Packit 5e46da
} BDJO_APP_MANAGEMENT_TABLE;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    unsigned int vk_play : 1;
Packit 5e46da
    unsigned int vk_stop : 1;
Packit 5e46da
    unsigned int vk_ffw : 1;
Packit 5e46da
    unsigned int vk_rew : 1;
Packit 5e46da
    unsigned int vk_track_next : 1;
Packit 5e46da
    unsigned int vk_track_prev : 1;
Packit 5e46da
    unsigned int vk_pause : 1;
Packit 5e46da
    unsigned int vk_still_off : 1;
Packit 5e46da
    unsigned int vk_sec_audio_ena_dis : 1;
Packit 5e46da
    unsigned int vk_sec_video_ena_dis : 1;
Packit 5e46da
    unsigned int pg_textst_ena_dis : 1;
Packit 5e46da
} BDJO_KEY_INTEREST_TABLE;
Packit 5e46da
Packit 5e46da
typedef struct {
Packit 5e46da
    // relative to VFS root. Separator ";". Should not start with "/".
Packit 5e46da
    // common "." == access to all files in VFS.
Packit 5e46da
    char *path;
Packit 5e46da
} BDJO_FILE_ACCESS_INFO;
Packit 5e46da
Packit 5e46da
typedef struct bdjo_data {
Packit 5e46da
    uint32_t                  bdjo_version;
Packit 5e46da
    BDJO_TERMINAL_INFO        terminal_info;
Packit 5e46da
    BDJO_APP_CACHE_INFO       app_cache_info;
Packit 5e46da
    BDJO_ACCESSIBLE_PLAYLISTS accessible_playlists;
Packit 5e46da
    BDJO_APP_MANAGEMENT_TABLE app_table;
Packit 5e46da
Packit 5e46da
    BDJO_KEY_INTEREST_TABLE   key_interest_table;
Packit 5e46da
    BDJO_FILE_ACCESS_INFO     file_access_info;
Packit 5e46da
} BDJO;
Packit 5e46da
Packit 5e46da
Packit 5e46da
#endif // _BDJO_DATA_H_