diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libspudec/spu.c | 11 | ||||
-rw-r--r-- | src/xine-engine/events.h | 1 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/libspudec/spu.c b/src/libspudec/spu.c index 35c655ac5..dafdca000 100644 --- a/src/libspudec/spu.c +++ b/src/libspudec/spu.c @@ -35,7 +35,7 @@ * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * - * $Id: spu.c,v 1.36 2002/04/23 22:42:17 jcdutton Exp $ + * $Id: spu.c,v 1.37 2002/04/23 23:46:23 jcdutton Exp $ * */ @@ -276,6 +276,15 @@ void spudec_process (spudec_decoder_t *this, uint32_t stream_id) { printf ("spu: forced display:%s\n", this->state.forced_display ? "Yes" : "No" ); #endif if (this->pci.hli.hl_gi.hli_s_ptm == this->spudec_stream_state[stream_id].pts) { + if ( this->pci.hli.hl_gi.fosl_btnn > 0) { + spu_button_t spu_button; + xine_spu_event_t spu_event; + this->buttonN = this->pci.hli.hl_gi.fosl_btnn ; + spu_event.event.type = XINE_EVENT_INPUT_BUTTON_FORCE; + spu_event.data = &spu_button; + spu_button.buttonN = this->buttonN; + xine_send_event(this->xine, &spu_event.event); + } spudec_copy_nav_to_overlay(&this->pci, this->state.clut, this->buttonN, 0, &this->overlay ); } else { /* Subtitle and not a menu button */ diff --git a/src/xine-engine/events.h b/src/xine-engine/events.h index 3ad501644..9077a4f7c 100644 --- a/src/xine-engine/events.h +++ b/src/xine-engine/events.h @@ -60,6 +60,7 @@ extern "C" { #define XINE_EVENT_SPU_FORCEDISPLAY 22 #define XINE_EVENT_FRAME_CHANGE 23 #define XINE_EVENT_CLOSED_CAPTION 24 +#define XINE_EVENT_INPUT_BUTTON_FORCE 25 /* * generic event type. |