/* * This file is part of libbluray * Copyright (C) 2014 Petri Hintukainen * * This library 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. * * This library 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 this library. If not, see * . */ #if !defined(_BDJO_DATA_H_) #define _BDJO_DATA_H_ #include typedef struct { char default_font[6]; // default AWT font. AUXDATA/?????.otf. "*****" = none. uint8_t initial_havi_config_id; // valid only if no autostart playlist. uint8_t menu_call_mask; uint8_t title_search_mask; } BDJO_TERMINAL_INFO; typedef struct { uint8_t type; // 1 - JAR, 2 - directory char ref_to_name[6]; // JAR/xxxxx.jar or JAR/xxxxx/ char lang_code[4]; // ref. to PSR18. "*.*" = cache always. "%%%" = fallback when no language matches PSR18. } BDJO_APP_CACHE_ITEM; typedef struct { uint8_t num_item; BDJO_APP_CACHE_ITEM *item; } BDJO_APP_CACHE_INFO; typedef struct { char name[6]; } BDJO_PLAYLIST; typedef struct { uint8_t access_to_all_flag; uint8_t autostart_first_playlist_flag; uint16_t num_pl; BDJO_PLAYLIST *pl; } BDJO_ACCESSIBLE_PLAYLISTS; typedef struct { uint16_t profile_number; /* 1: BD-ROM profile 1. 2: BD-ROM profile 2 */ uint8_t major_version; uint8_t minor_version; uint8_t micro_version; } BDJO_APP_PROFILE; typedef struct { char lang[4]; char *name; /* UTF-8, informative name */ } BDJO_APP_NAME; typedef struct { char *param; } BDJO_APP_PARAM; typedef struct { uint8_t control_code; /* 1 - autostart, 2 - present */ uint8_t type; /* 1 - BD-J App */ uint32_t org_id; uint16_t app_id; /* descriptor */ uint8_t num_profile; BDJO_APP_PROFILE *profile; uint8_t priority; uint8_t binding; uint8_t visibility; uint16_t num_name; BDJO_APP_NAME *name; uint8_t icon_flags; char *icon_locator; // relative to base_dir char *base_dir; // "00000" -> 00000.jar!/ , "00000/base" -> 00000.jar!/base/ char *classpath_extension; // separator ; . relative paths relative to base_dir. absolute paths refer to .jar files. char *initial_class; uint8_t num_param; BDJO_APP_PARAM *param; } BDJO_APP; typedef struct { uint8_t num_app; BDJO_APP *app; } BDJO_APP_MANAGEMENT_TABLE; typedef struct { unsigned int vk_play : 1; unsigned int vk_stop : 1; unsigned int vk_ffw : 1; unsigned int vk_rew : 1; unsigned int vk_track_next : 1; unsigned int vk_track_prev : 1; unsigned int vk_pause : 1; unsigned int vk_still_off : 1; unsigned int vk_sec_audio_ena_dis : 1; unsigned int vk_sec_video_ena_dis : 1; unsigned int pg_textst_ena_dis : 1; } BDJO_KEY_INTEREST_TABLE; typedef struct { // relative to VFS root. Separator ";". Should not start with "/". // common "." == access to all files in VFS. char *path; } BDJO_FILE_ACCESS_INFO; typedef struct bdjo_data { uint32_t bdjo_version; BDJO_TERMINAL_INFO terminal_info; BDJO_APP_CACHE_INFO app_cache_info; BDJO_ACCESSIBLE_PLAYLISTS accessible_playlists; BDJO_APP_MANAGEMENT_TABLE app_table; BDJO_KEY_INTEREST_TABLE key_interest_table; BDJO_FILE_ACCESS_INFO file_access_info; } BDJO; #endif // _BDJO_DATA_H_