Blame src/libbluray/hdmv/hdmv_insn.h

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_