|
Packit |
5e46da |
/*
|
|
Packit |
5e46da |
* This file is part of libbluray
|
|
Packit |
5e46da |
* Copyright (C) 2010-2012 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(_HDMV_INSN_H_)
|
|
Packit |
5e46da |
#define _HDMV_INSN_H_
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/*
|
|
Packit |
5e46da |
* instruction groups
|
|
Packit |
5e46da |
*/
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef enum {
|
|
Packit |
5e46da |
INSN_GROUP_BRANCH = 0,
|
|
Packit |
5e46da |
INSN_GROUP_CMP = 1,
|
|
Packit |
5e46da |
INSN_GROUP_SET = 2,
|
|
Packit |
5e46da |
} hdmv_insn_grp;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/*
|
|
Packit |
5e46da |
* BRANCH group
|
|
Packit |
5e46da |
*/
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/* BRANCH sub-groups */
|
|
Packit |
5e46da |
typedef enum {
|
|
Packit |
5e46da |
BRANCH_GOTO = 0x00,
|
|
Packit |
5e46da |
BRANCH_JUMP = 0x01,
|
|
Packit |
5e46da |
BRANCH_PLAY = 0x02,
|
|
Packit |
5e46da |
} hdmv_insn_grp_branch;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/* GOTO sub-group */
|
|
Packit |
5e46da |
typedef enum {
|
|
Packit |
5e46da |
INSN_NOP = 0x00,
|
|
Packit |
5e46da |
INSN_GOTO = 0x01,
|
|
Packit |
5e46da |
INSN_BREAK = 0x02,
|
|
Packit |
5e46da |
} hdmv_insn_goto;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/* JUMP sub-group */
|
|
Packit |
5e46da |
typedef enum {
|
|
Packit |
5e46da |
INSN_JUMP_OBJECT = 0x00,
|
|
Packit |
5e46da |
INSN_JUMP_TITLE = 0x01,
|
|
Packit |
5e46da |
INSN_CALL_OBJECT = 0x02,
|
|
Packit |
5e46da |
INSN_CALL_TITLE = 0x03,
|
|
Packit |
5e46da |
INSN_RESUME = 0x04,
|
|
Packit |
5e46da |
} hdmv_insn_jump;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/* PLAY sub-group */
|
|
Packit |
5e46da |
typedef enum {
|
|
Packit |
5e46da |
INSN_PLAY_PL = 0x00,
|
|
Packit |
5e46da |
INSN_PLAY_PL_PI = 0x01,
|
|
Packit |
5e46da |
INSN_PLAY_PL_PM = 0x02,
|
|
Packit |
5e46da |
INSN_TERMINATE_PL = 0x03,
|
|
Packit |
5e46da |
INSN_LINK_PI = 0x04,
|
|
Packit |
5e46da |
INSN_LINK_MK = 0x05,
|
|
Packit |
5e46da |
} hdmv_insn_play;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/*
|
|
Packit |
5e46da |
* COMPARE group
|
|
Packit |
5e46da |
*/
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef enum {
|
|
Packit |
5e46da |
INSN_BC = 0x01,
|
|
Packit |
5e46da |
INSN_EQ = 0x02,
|
|
Packit |
5e46da |
INSN_NE = 0x03,
|
|
Packit |
5e46da |
INSN_GE = 0x04,
|
|
Packit |
5e46da |
INSN_GT = 0x05,
|
|
Packit |
5e46da |
INSN_LE = 0x06,
|
|
Packit |
5e46da |
INSN_LT = 0x07,
|
|
Packit |
5e46da |
} hdmv_insn_cmp;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/*
|
|
Packit |
5e46da |
* SET group
|
|
Packit |
5e46da |
*/
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/* SET sub-groups */
|
|
Packit |
5e46da |
typedef enum {
|
|
Packit |
5e46da |
SET_SET = 0x00,
|
|
Packit |
5e46da |
SET_SETSYSTEM = 0x01,
|
|
Packit |
5e46da |
} hdmv_insn_grp_set;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/* SET sub-group */
|
|
Packit |
5e46da |
typedef enum {
|
|
Packit |
5e46da |
INSN_MOVE = 0x01,
|
|
Packit |
5e46da |
INSN_SWAP = 0x02,
|
|
Packit |
5e46da |
INSN_ADD = 0x03,
|
|
Packit |
5e46da |
INSN_SUB = 0x04,
|
|
Packit |
5e46da |
INSN_MUL = 0x05,
|
|
Packit |
5e46da |
INSN_DIV = 0x06,
|
|
Packit |
5e46da |
INSN_MOD = 0x07,
|
|
Packit |
5e46da |
INSN_RND = 0x08,
|
|
Packit |
5e46da |
INSN_AND = 0x09,
|
|
Packit |
5e46da |
INSN_OR = 0x0a,
|
|
Packit |
5e46da |
INSN_XOR = 0x0b,
|
|
Packit |
5e46da |
INSN_BITSET = 0x0c,
|
|
Packit |
5e46da |
INSN_BITCLR = 0x0d,
|
|
Packit |
5e46da |
INSN_SHL = 0x0e,
|
|
Packit |
5e46da |
INSN_SHR = 0x0f,
|
|
Packit |
5e46da |
} hdmv_insn_set;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
/* SETSYSTEM sub-group */
|
|
Packit |
5e46da |
typedef enum {
|
|
Packit |
5e46da |
INSN_SET_STREAM = 0x01,
|
|
Packit |
5e46da |
INSN_SET_NV_TIMER = 0x02,
|
|
Packit |
5e46da |
INSN_SET_BUTTON_PAGE = 0x03,
|
|
Packit |
5e46da |
INSN_ENABLE_BUTTON = 0x04,
|
|
Packit |
5e46da |
INSN_DISABLE_BUTTON = 0x05,
|
|
Packit |
5e46da |
INSN_SET_SEC_STREAM = 0x06,
|
|
Packit |
5e46da |
INSN_POPUP_OFF = 0x07,
|
|
Packit |
5e46da |
INSN_STILL_ON = 0x08,
|
|
Packit |
5e46da |
INSN_STILL_OFF = 0x09,
|
|
Packit |
5e46da |
INSN_SET_OUTPUT_MODE = 0x0a,
|
|
Packit |
5e46da |
INSN_SET_STREAM_SS = 0x0b,
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
INSN_SETSYSTEM_0x10 = 0x10,
|
|
Packit |
5e46da |
} hdmv_insn_setsystem;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
#endif // _HDMV_INSN_H_
|