diff options
Diffstat (limited to 'src/input/vcd/vcdplayer.c')
| -rw-r--r-- | src/input/vcd/vcdplayer.c | 565 |
1 files changed, 293 insertions, 272 deletions
diff --git a/src/input/vcd/vcdplayer.c b/src/input/vcd/vcdplayer.c index 18c411afe..802c4e508 100644 --- a/src/input/vcd/vcdplayer.c +++ b/src/input/vcd/vcdplayer.c @@ -1,5 +1,5 @@ /* - $Id: vcdplayer.c,v 1.6 2004/07/25 17:42:22 mroi Exp $ + $Id: vcdplayer.c,v 1.7 2004/12/29 09:23:56 rockyb Exp $ Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com> @@ -46,37 +46,37 @@ #include "vcdplayer.h" #include "vcdio.h" -#define LOG_ERR(this, s, args...) \ - if (this != NULL && this->log_err != NULL) \ - this->log_err("%s: "s, __func__ , ##args) +#define LOG_ERR(p_vcdplayer, s, args...) \ + if (p_vcdplayer != NULL && p_vcdplayer->log_err != NULL) \ + p_vcdplayer->log_err("%s: "s, __func__ , ##args) unsigned long int vcdplayer_debug = 0; -static void _vcdplayer_set_origin(vcdplayer_input_t *this); +static void _vcdplayer_set_origin(vcdplayer_t *p_vcdplayer); /*! Return true if playback control (PBC) is on */ bool -vcdplayer_pbc_is_on(const vcdplayer_input_t *this) +vcdplayer_pbc_is_on(const vcdplayer_t *p_vcdplayer) { - return VCDINFO_INVALID_ENTRY != this->cur_lid; + return VCDINFO_INVALID_ENTRY != p_vcdplayer->i_lid; } /* Given an itemid, return the size for the object (via information previously stored when opening the vcd). */ static size_t -_vcdplayer_get_item_size(vcdplayer_input_t *this, vcdinfo_itemid_t itemid) +_vcdplayer_get_item_size(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid) { switch (itemid.type) { case VCDINFO_ITEM_TYPE_ENTRY: - return this->entry[itemid.num].size; + return p_vcdplayer->entry[itemid.num].size; break; case VCDINFO_ITEM_TYPE_SEGMENT: - return this->segment[itemid.num].size; + return p_vcdplayer->segment[itemid.num].size; break; case VCDINFO_ITEM_TYPE_TRACK: - return this->track[itemid.num-1].size; + return p_vcdplayer->track[itemid.num-1].size; break; case VCDINFO_ITEM_TYPE_LID: /* Play list number (LID) */ @@ -85,7 +85,7 @@ _vcdplayer_get_item_size(vcdplayer_input_t *this, vcdinfo_itemid_t itemid) case VCDINFO_ITEM_TYPE_NOTFOUND: case VCDINFO_ITEM_TYPE_SPAREID2: default: - LOG_ERR(this, "%s %d\n", _("bad item type"), itemid.type); + LOG_ERR(p_vcdplayer, "%s %d\n", _("bad item type"), itemid.type); return 0; } } @@ -139,7 +139,7 @@ _vcdplayer_get_item_size(vcdplayer_input_t *this, vcdinfo_itemid_t itemid) %% : a % */ char * -vcdplayer_format_str(vcdplayer_input_t *this, const char format_str[]) +vcdplayer_format_str(vcdplayer_t *p_vcdplayer, const char format_str[]) { #define TEMP_STR_SIZE 256 #define TEMP_STR_LEN (TEMP_STR_SIZE-1) @@ -148,7 +148,7 @@ vcdplayer_format_str(vcdplayer_input_t *this, const char format_str[]) char * tp = temp_str; bool saw_control_prefix = false; size_t format_len = strlen(format_str); - vcdinfo_obj_t *obj = this->vcd; + vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd; memset(temp_str, 0, TEMP_STR_SIZE); @@ -168,25 +168,25 @@ vcdplayer_format_str(vcdplayer_input_t *this, const char format_str[]) saw_control_prefix = !saw_control_prefix; break; case 'A': - add_format_str_info(vcdinfo_strip_trail(vcdinfo_get_album_id(obj), + add_format_str_info(vcdinfo_strip_trail(vcdinfo_get_album_id(p_vcdinfo), MAX_ALBUM_LEN)); break; case 'c': - add_format_num_info(vcdinfo_get_volume_num(obj), "%d"); + add_format_num_info(vcdinfo_get_volume_num(p_vcdinfo), "%d"); break; case 'C': - add_format_num_info(vcdinfo_get_volume_count(obj), "%d"); + add_format_num_info(vcdinfo_get_volume_count(p_vcdinfo), "%d"); break; case 'F': - add_format_str_info(vcdinfo_get_format_version_str(obj)); + add_format_str_info(vcdinfo_get_format_version_str(p_vcdinfo)); break; case 'I': { - switch (this->play_item.type) { + switch (p_vcdplayer->play_item.type) { case VCDINFO_ITEM_TYPE_TRACK: strncat(tp, "Track", TEMP_STR_LEN-(tp-temp_str)); tp += strlen("Track"); @@ -216,9 +216,9 @@ vcdplayer_format_str(vcdplayer_input_t *this, const char format_str[]) break; case 'L': - if (vcdplayer_pbc_is_on(this)) { + if (vcdplayer_pbc_is_on(p_vcdplayer)) { char num_str[20]; - snprintf(num_str, sizeof(num_str), " List ID %d", this->cur_lid); + snprintf(num_str, sizeof(num_str), " List ID %d", p_vcdplayer->i_lid); strncat(tp, num_str, TEMP_STR_LEN-(tp-temp_str)); tp += strlen(num_str); } @@ -226,23 +226,23 @@ vcdplayer_format_str(vcdplayer_input_t *this, const char format_str[]) break; case 'N': - add_format_num_info(this->play_item.num, "%d"); + add_format_num_info(p_vcdplayer->play_item.num, "%d"); break; case 'p': - add_format_str_info(vcdinfo_get_preparer_id(obj)); + add_format_str_info(vcdinfo_get_preparer_id(p_vcdinfo)); break; case 'P': - add_format_str_info(vcdinfo_get_publisher_id(obj)); + add_format_str_info(vcdinfo_get_publisher_id(p_vcdinfo)); break; case 'S': - if ( VCDINFO_ITEM_TYPE_SEGMENT==this->play_item.type ) { - char seg_type_str[10]; + if ( VCDINFO_ITEM_TYPE_SEGMENT==p_vcdplayer->play_item.type ) { + char seg_type_str[30]; snprintf(seg_type_str, sizeof(seg_type_str), " %s", - vcdinfo_video_type2str(obj, this->play_item.num)); + vcdinfo_video_type2str(p_vcdinfo, p_vcdplayer->play_item.num)); strncat(tp, seg_type_str, TEMP_STR_LEN-(tp-temp_str)); tp += strlen(seg_type_str); } @@ -250,15 +250,15 @@ vcdplayer_format_str(vcdplayer_input_t *this, const char format_str[]) break; case 'T': - add_format_num_info(this->cur_track, "%d"); + add_format_num_info(p_vcdplayer->i_track, "%d"); break; case 'V': - add_format_str_info(vcdinfo_get_volumeset_id(obj)); + add_format_str_info(vcdinfo_get_volumeset_id(p_vcdinfo)); break; case 'v': - add_format_str_info(vcdinfo_get_volume_id(obj)); + add_format_str_info(vcdinfo_get_volume_id(p_vcdinfo)); break; default: @@ -271,13 +271,13 @@ vcdplayer_format_str(vcdplayer_input_t *this, const char format_str[]) } static void -_vcdplayer_update_entry(vcdinfo_obj_t *obj, uint16_t ofs, uint16_t *entry, - const char *label) +_vcdplayer_update_entry(vcdinfo_obj_t *p_vcdinfo, uint16_t ofs, + uint16_t *entry, const char *label) { if ( ofs == VCDINFO_INVALID_OFFSET ) { *entry = VCDINFO_INVALID_ENTRY; } else { - vcdinfo_offset_t *off = vcdinfo_get_offset_t(obj, ofs); + vcdinfo_offset_t *off = vcdinfo_get_offset_t(p_vcdinfo, ofs); if (off != NULL) { *entry = off->lid; dbg_print(INPUT_DBG_PBC, "%s: %d\n", label, off->lid); @@ -287,107 +287,120 @@ _vcdplayer_update_entry(vcdinfo_obj_t *obj, uint16_t ofs, uint16_t *entry, } /*! - Update next/prev/return/default navigation buttons (via this->cur_lid). - Update size of play-item (via this->play_item). + Update next/prev/return/default navigation buttons + (via p_vcdplayer->i_lid). Update size of play-item + (via p_vcdplayer->play_item). */ void -vcdplayer_update_nav(vcdplayer_input_t *this) +vcdplayer_update_nav(vcdplayer_t *p_vcdplayer) { - int play_item = this->play_item.num; - vcdinfo_obj_t *obj = this->vcd; + int play_item = p_vcdplayer->play_item.num; + vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd; int min_entry = 1; int max_entry = 0; - if (vcdplayer_pbc_is_on(this)) { + if (vcdplayer_pbc_is_on(p_vcdplayer)) { - vcdinfo_lid_get_pxd(obj, &(this->pxd), this->cur_lid); + vcdinfo_lid_get_pxd(p_vcdinfo, &(p_vcdplayer->pxd), p_vcdplayer->i_lid); - switch (this->pxd.descriptor_type) { + switch (p_vcdplayer->pxd.descriptor_type) { case PSD_TYPE_SELECTION_LIST: case PSD_TYPE_EXT_SELECTION_LIST: - if (this->pxd.psd == NULL) return; - _vcdplayer_update_entry(obj, vcdinf_psd_get_prev_offset(this->pxd.psd), - &(this->prev_entry), "prev"); + if (p_vcdplayer->pxd.psd == NULL) return; + _vcdplayer_update_entry(p_vcdinfo, + vcdinf_psd_get_prev_offset(p_vcdplayer->pxd.psd), + &(p_vcdplayer->prev_entry), "prev"); - _vcdplayer_update_entry(obj, vcdinf_psd_get_next_offset(this->pxd.psd), - &(this->next_entry), "next"); + _vcdplayer_update_entry(p_vcdinfo, + vcdinf_psd_get_next_offset(p_vcdplayer->pxd.psd), + &(p_vcdplayer->next_entry), "next"); - _vcdplayer_update_entry(obj, vcdinf_psd_get_return_offset(this->pxd.psd), - &(this->return_entry), "return"); - - _vcdplayer_update_entry(obj, - vcdinfo_get_default_offset(obj, this->cur_lid), - &(this->default_entry), "default"); + _vcdplayer_update_entry(p_vcdinfo, + vcdinf_psd_get_return_offset(p_vcdplayer->pxd.psd), + &(p_vcdplayer->return_entry), "return"); + + _vcdplayer_update_entry(p_vcdinfo, + vcdinfo_get_default_offset(p_vcdinfo, + p_vcdplayer->i_lid), + &(p_vcdplayer->default_entry), "default"); break; case PSD_TYPE_PLAY_LIST: - if (this->pxd.pld == NULL) return; - _vcdplayer_update_entry(obj, vcdinf_pld_get_prev_offset(this->pxd.pld), - &(this->prev_entry), "prev"); + if (p_vcdplayer->pxd.pld == NULL) return; + _vcdplayer_update_entry(p_vcdinfo, + vcdinf_pld_get_prev_offset(p_vcdplayer->pxd.pld), + &(p_vcdplayer->prev_entry), "prev"); - _vcdplayer_update_entry(obj, vcdinf_pld_get_next_offset(this->pxd.pld), - &(this->next_entry), "next"); + _vcdplayer_update_entry(p_vcdinfo, + vcdinf_pld_get_next_offset(p_vcdplayer->pxd.pld), + &(p_vcdplayer->next_entry), "next"); - _vcdplayer_update_entry(obj, vcdinf_pld_get_return_offset(this->pxd.pld), - &(this->return_entry), "return"); - this->default_entry = VCDINFO_INVALID_ENTRY; + _vcdplayer_update_entry(p_vcdinfo, + vcdinf_pld_get_return_offset(p_vcdplayer->pxd.pld), + &(p_vcdplayer->return_entry), "return"); + p_vcdplayer->default_entry = VCDINFO_INVALID_ENTRY; break; case PSD_TYPE_END_LIST: - this->origin_lsn = this->cur_lsn = this->end_lsn = VCDINFO_NULL_LSN; + p_vcdplayer->origin_lsn = p_vcdplayer->i_lsn = p_vcdplayer->end_lsn + = VCDINFO_NULL_LSN; /* Fall through */ case PSD_TYPE_COMMAND_LIST: - this->next_entry = this->prev_entry = this->return_entry = - this->default_entry = VCDINFO_INVALID_ENTRY; + p_vcdplayer->next_entry = p_vcdplayer->prev_entry + = p_vcdplayer->return_entry = VCDINFO_INVALID_ENTRY; + p_vcdplayer->default_entry = VCDINFO_INVALID_ENTRY; break; } - - this->update_title(); + + if (p_vcdplayer->update_title) + p_vcdplayer->update_title(); return; } /* PBC is not on. Set up for simplified next, prev, and return. */ - switch (this->play_item.type) { + switch (p_vcdplayer->play_item.type) { case VCDINFO_ITEM_TYPE_ENTRY: case VCDINFO_ITEM_TYPE_SEGMENT: case VCDINFO_ITEM_TYPE_TRACK: - switch (this->play_item.type) { + switch (p_vcdplayer->play_item.type) { case VCDINFO_ITEM_TYPE_ENTRY: - max_entry = this->num_entries; + max_entry = p_vcdplayer->i_entries; min_entry = 0; /* Can remove when Entries start at 1. */ - this->cur_track = vcdinfo_get_track(obj, play_item); - this->track_lsn = vcdinfo_get_track_lsn(obj, this->cur_track); + p_vcdplayer->i_track = vcdinfo_get_track(p_vcdinfo, play_item); + p_vcdplayer->track_lsn = vcdinfo_get_track_lsn(p_vcdinfo, + p_vcdplayer->i_track); break; case VCDINFO_ITEM_TYPE_SEGMENT: - max_entry = this->num_segments; - this->cur_track = VCDINFO_INVALID_TRACK; + max_entry = p_vcdplayer->i_segments; + p_vcdplayer->i_track = VCDINFO_INVALID_TRACK; break; case VCDINFO_ITEM_TYPE_TRACK: - max_entry = this->num_tracks; - this->cur_track = this->play_item.num; - this->track_lsn = vcdinfo_get_track_lsn(obj, this->cur_track); + max_entry = p_vcdplayer->i_tracks; + p_vcdplayer->i_track = p_vcdplayer->play_item.num; + p_vcdplayer->track_lsn = vcdinfo_get_track_lsn(p_vcdinfo, + p_vcdplayer->i_track); break; default: ; /* Handle exceptional cases below */ } - _vcdplayer_set_origin(this); + _vcdplayer_set_origin(p_vcdplayer); /* Set next, prev, return and default to simple and hopefully useful values. */ if (play_item+1 >= max_entry) - this->next_entry = VCDINFO_INVALID_ENTRY; + p_vcdplayer->next_entry = VCDINFO_INVALID_ENTRY; else - this->next_entry = play_item+1; + p_vcdplayer->next_entry = play_item+1; if (play_item-1 >= min_entry) - this->prev_entry = play_item-1; + p_vcdplayer->prev_entry = play_item-1; else - this->prev_entry = VCDINFO_INVALID_ENTRY; + p_vcdplayer->prev_entry = VCDINFO_INVALID_ENTRY; - this->default_entry = play_item; - this->return_entry = min_entry; + p_vcdplayer->default_entry = play_item; + p_vcdplayer->return_entry = min_entry; break; case VCDINFO_ITEM_TYPE_LID: @@ -397,32 +410,32 @@ vcdplayer_update_nav(vcdplayer_input_t *this) } default: ; } - this->update_title(); + p_vcdplayer->update_title(); } /*! Set reading to play an entire track. */ static void -_vcdplayer_set_track(vcdplayer_input_t *this, unsigned int track_num) +_vcdplayer_set_track(vcdplayer_t *p_vcdplayer, unsigned int i_track) { - if (track_num < 1 || track_num > this->num_tracks) + if (i_track < 1 || i_track > p_vcdplayer->i_tracks) return; else { - vcdinfo_obj_t *obj = this->vcd; + vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd; vcdinfo_itemid_t itemid; - itemid.num = track_num; - itemid.type = VCDINFO_ITEM_TYPE_TRACK; - this->in_still = 0; - this->cur_lsn = vcdinfo_get_track_lsn(obj, track_num); - this->play_item = itemid; - this->cur_track = track_num; - this->track_lsn = this->cur_lsn; + itemid.num = i_track; + itemid.type = VCDINFO_ITEM_TYPE_TRACK; + p_vcdplayer->i_still = 0; + p_vcdplayer->i_lsn = vcdinfo_get_track_lsn(p_vcdinfo, i_track); + p_vcdplayer->play_item = itemid; + p_vcdplayer->i_track = i_track; + p_vcdplayer->track_lsn = p_vcdplayer->i_lsn; - _vcdplayer_set_origin(this); + _vcdplayer_set_origin(p_vcdplayer); - dbg_print(INPUT_DBG_LSN, "LSN: %u\n", this->cur_lsn); + dbg_print(INPUT_DBG_LSN, "LSN: %u\n", p_vcdplayer->i_lsn); } } @@ -430,31 +443,32 @@ _vcdplayer_set_track(vcdplayer_input_t *this, unsigned int track_num) Set reading to play an entry */ static void -_vcdplayer_set_entry(vcdplayer_input_t *this, unsigned int num) +_vcdplayer_set_entry(vcdplayer_t *p_vcdplayer, unsigned int num) { - vcdinfo_obj_t *obj = this->vcd; - unsigned int num_entries = vcdinfo_get_num_entries(obj); + vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd; + const unsigned int i_entries = vcdinfo_get_num_entries(p_vcdinfo); - if (num >= num_entries) { - LOG_ERR(this, "%s %d\n", _("bad entry number"), num); + if (num >= i_entries) { + LOG_ERR(p_vcdplayer, "%s %d\n", _("bad entry number"), num); return; } else { vcdinfo_itemid_t itemid; - itemid.num = num; - itemid.type = VCDINFO_ITEM_TYPE_ENTRY; - this->in_still = 0; - this->cur_lsn = vcdinfo_get_entry_lsn(obj, num); - this->play_item = itemid; - this->cur_track = vcdinfo_get_track(obj, num); - this->track_lsn = vcdinfo_get_track_lsn(obj, this->cur_track); - this->track_end_lsn = this->track_lsn + - this->track[this->cur_track-1].size; + itemid.num = num; + itemid.type = VCDINFO_ITEM_TYPE_ENTRY; + p_vcdplayer->i_still = 0; + p_vcdplayer->i_lsn = vcdinfo_get_entry_lsn(p_vcdinfo, num); + p_vcdplayer->play_item = itemid; + p_vcdplayer->i_track = vcdinfo_get_track(p_vcdinfo, num); + p_vcdplayer->track_lsn = vcdinfo_get_track_lsn(p_vcdinfo, + p_vcdplayer->i_track); + p_vcdplayer->track_end_lsn = p_vcdplayer->track_lsn + + p_vcdplayer->track[p_vcdplayer->i_track-1].size; - _vcdplayer_set_origin(this); + _vcdplayer_set_origin(p_vcdplayer); dbg_print(INPUT_DBG_LSN, "LSN: %u, track_end LSN: %u\n", - this->cur_lsn, this->track_end_lsn); + p_vcdplayer->i_lsn, p_vcdplayer->track_end_lsn); } } @@ -462,61 +476,61 @@ _vcdplayer_set_entry(vcdplayer_input_t *this, unsigned int num) Set reading to play an segment (e.g. still frame) */ static void -_vcdplayer_set_segment(vcdplayer_input_t *this, unsigned int num) +_vcdplayer_set_segment(vcdplayer_t *p_vcdplayer, unsigned int num) { - vcdinfo_obj_t *obj = this->vcd; - segnum_t num_segs = vcdinfo_get_num_segments(obj); + vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd; + segnum_t i_segs = vcdinfo_get_num_segments(p_vcdinfo); - if (num >= num_segs) { - LOG_ERR(this, "%s %d\n", _("bad segment number"), num); + if (num >= i_segs) { + LOG_ERR(p_vcdplayer, "%s %d\n", _("bad segment number"), num); return; } else { vcdinfo_itemid_t itemid; - this->cur_lsn = vcdinfo_get_seg_lsn(obj, num); - this->cur_track = 0; + p_vcdplayer->i_lsn = vcdinfo_get_seg_lsn(p_vcdinfo, num); + p_vcdplayer->i_track = 0; - if (VCDINFO_NULL_LSN==this->cur_lsn) { - LOG_ERR(this, "%s %d\n", + if (VCDINFO_NULL_LSN==p_vcdplayer->i_lsn) { + LOG_ERR(p_vcdplayer, "%s %d\n", _("Error in getting current segment number"), num); return; } itemid.num = num; itemid.type = VCDINFO_ITEM_TYPE_SEGMENT; - this->play_item = itemid; + p_vcdplayer->play_item = itemid; - _vcdplayer_set_origin(this); + _vcdplayer_set_origin(p_vcdplayer); - dbg_print(INPUT_DBG_LSN, "LSN: %u\n", this->cur_lsn); + dbg_print(INPUT_DBG_LSN, "LSN: %u\n", p_vcdplayer->i_lsn); } } /* Play entry. */ /* Play a single item. */ static void -vcdplayer_play_single_item(vcdplayer_input_t *this, vcdinfo_itemid_t itemid) +vcdplayer_play_single_item(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid) { - vcdinfo_obj_t *obj = this->vcd; + vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd; dbg_print(INPUT_DBG_CALL, "called itemid.num: %d, itemid.type: %d\n", itemid.num, itemid.type); - this->in_still = 0; + p_vcdplayer->i_still = 0; switch (itemid.type) { case VCDINFO_ITEM_TYPE_SEGMENT: { vcdinfo_video_segment_type_t segtype - = vcdinfo_get_video_type(obj, itemid.num); - segnum_t num_segs = vcdinfo_get_num_segments(obj); + = vcdinfo_get_video_type(p_vcdinfo, itemid.num); + segnum_t i_segs = vcdinfo_get_num_segments(p_vcdinfo); dbg_print(INPUT_DBG_PBC, "%s (%d), itemid.num: %d\n", - vcdinfo_video_type2str(obj, itemid.num), + vcdinfo_video_type2str(p_vcdinfo, itemid.num), (int) segtype, itemid.num); - if (itemid.num >= num_segs) return; - _vcdplayer_set_segment(this, itemid.num); + if (itemid.num >= i_segs) return; + _vcdplayer_set_segment(p_vcdplayer, itemid.num); switch (segtype) { @@ -524,10 +538,10 @@ vcdplayer_play_single_item(vcdplayer_input_t *this, vcdinfo_itemid_t itemid) case VCDINFO_FILES_VIDEO_NTSC_STILL2: case VCDINFO_FILES_VIDEO_PAL_STILL: case VCDINFO_FILES_VIDEO_PAL_STILL2: - this->in_still = -5; + p_vcdplayer->i_still = STILL_READING; break; default: - this->in_still = 0; + p_vcdplayer->i_still = 0; } break; @@ -535,41 +549,41 @@ vcdplayer_play_single_item(vcdplayer_input_t *this, vcdinfo_itemid_t itemid) case VCDINFO_ITEM_TYPE_TRACK: dbg_print(INPUT_DBG_PBC, "track %d\n", itemid.num); - if (itemid.num < 1 || itemid.num > this->num_tracks) return; - _vcdplayer_set_track(this, itemid.num); + if (itemid.num < 1 || itemid.num > p_vcdplayer->i_tracks) return; + _vcdplayer_set_track(p_vcdplayer, itemid.num); break; case VCDINFO_ITEM_TYPE_ENTRY: { - unsigned int num_entries = vcdinfo_get_num_entries(obj); + unsigned int i_entries = vcdinfo_get_num_entries(p_vcdinfo); dbg_print(INPUT_DBG_PBC, "entry %d\n", itemid.num); - if (itemid.num >= num_entries) return; - _vcdplayer_set_entry(this, itemid.num); + if (itemid.num >= i_entries) return; + _vcdplayer_set_entry(p_vcdplayer, itemid.num); break; } case VCDINFO_ITEM_TYPE_LID: - LOG_ERR(this, "%s\n", _("Should have converted this above")); + LOG_ERR(p_vcdplayer, "%s\n", _("Should have converted this above")); break; case VCDINFO_ITEM_TYPE_NOTFOUND: dbg_print(INPUT_DBG_PBC, "play nothing\n"); - this->cur_lsn = this->end_lsn; + p_vcdplayer->i_lsn = p_vcdplayer->end_lsn; return; default: - LOG_ERR(this, "item type %d not implemented.\n", itemid.type); + LOG_ERR(p_vcdplayer, "item type %d not implemented.\n", itemid.type); return; } - this->play_item = itemid; + p_vcdplayer->play_item = itemid; - vcdplayer_update_nav(this); + vcdplayer_update_nav(p_vcdplayer); /* Some players like xine, have a fifo queue of audio and video buffers that need to be flushed when playing a new selection. */ - /* if (this->flush_buffers) - this->flush_buffers(); */ + /* if (p_vcdplayer->flush_buffers) + p_vcdplayer->flush_buffers(); */ } @@ -580,77 +594,77 @@ vcdplayer_play_single_item(vcdplayer_input_t *this, vcdinfo_itemid_t itemid) "next" field of a LID which moves us to a different LID. */ static bool -_vcdplayer_inc_play_item(vcdplayer_input_t *this) +_vcdplayer_inc_play_item(vcdplayer_t *p_vcdplayer) { int noi; - dbg_print(INPUT_DBG_CALL, "called pli: %d\n", this->pdi); + dbg_print(INPUT_DBG_CALL, "called pli: %d\n", p_vcdplayer->pdi); - if ( NULL == this || NULL == this->pxd.pld ) return false; + if ( NULL == p_vcdplayer || NULL == p_vcdplayer->pxd.pld ) return false; - noi = vcdinf_pld_get_noi(this->pxd.pld); + noi = vcdinf_pld_get_noi(p_vcdplayer->pxd.pld); if ( noi <= 0 ) return false; /* Handle delays like autowait or wait here? */ - this->pdi++; + p_vcdplayer->pdi++; - if ( this->pdi < 0 || this->pdi >= noi ) return false; + if ( p_vcdplayer->pdi < 0 || p_vcdplayer->pdi >= noi ) return false; else { - uint16_t trans_itemid_num=vcdinf_pld_get_play_item(this->pxd.pld, - this->pdi); + uint16_t trans_itemid_num=vcdinf_pld_get_play_item(p_vcdplayer->pxd.pld, + p_vcdplayer->pdi); vcdinfo_itemid_t trans_itemid; if (VCDINFO_INVALID_ITEMID == trans_itemid_num) return false; vcdinfo_classify_itemid(trans_itemid_num, &trans_itemid); dbg_print(INPUT_DBG_PBC, " play-item[%d]: %s\n", - this->pdi, vcdinfo_pin2str (trans_itemid_num)); - vcdplayer_play_single_item(this, trans_itemid); + p_vcdplayer->pdi, vcdinfo_pin2str (trans_itemid_num)); + vcdplayer_play_single_item(p_vcdplayer, trans_itemid); return true; } } void -vcdplayer_play(vcdplayer_input_t *this, vcdinfo_itemid_t itemid) +vcdplayer_play(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid) { dbg_print(INPUT_DBG_CALL, "called itemid.num: %d itemid.type: %d\n", itemid.num, itemid.type); - if (!vcdplayer_pbc_is_on(this)) { - vcdplayer_play_single_item(this, itemid); + if (!vcdplayer_pbc_is_on(p_vcdplayer)) { + vcdplayer_play_single_item(p_vcdplayer, itemid); } else { /* PBC on - Itemid.num is LID. */ - vcdinfo_obj_t *obj = this->vcd; + vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd; - if (obj == NULL) return; + if (p_vcdinfo == NULL) return; - this->cur_lid = itemid.num; - vcdinfo_lid_get_pxd(obj, &(this->pxd), itemid.num); + p_vcdplayer->i_lid = itemid.num; + vcdinfo_lid_get_pxd(p_vcdinfo, &(p_vcdplayer->pxd), itemid.num); - switch (this->pxd.descriptor_type) { + switch (p_vcdplayer->pxd.descriptor_type) { case PSD_TYPE_SELECTION_LIST: case PSD_TYPE_EXT_SELECTION_LIST: { vcdinfo_itemid_t trans_itemid; uint16_t trans_itemid_num; - if (this->pxd.psd == NULL) return; - trans_itemid_num = vcdinf_psd_get_itemid(this->pxd.psd); + if (p_vcdplayer->pxd.psd == NULL) return; + trans_itemid_num = vcdinf_psd_get_itemid(p_vcdplayer->pxd.psd); vcdinfo_classify_itemid(trans_itemid_num, &trans_itemid); - this->loop_count = 1; - this->loop_item = trans_itemid; - vcdplayer_play_single_item(this, trans_itemid); + p_vcdplayer->i_loop = 1; + p_vcdplayer->loop_item = trans_itemid; + vcdplayer_play_single_item(p_vcdplayer, trans_itemid); break; } case PSD_TYPE_PLAY_LIST: { - if (this->pxd.pld == NULL) return; - this->pdi = -1; - _vcdplayer_inc_play_item(this); + if (p_vcdplayer->pxd.pld == NULL) return; + p_vcdplayer->pdi = -1; + _vcdplayer_inc_play_item(p_vcdplayer); break; } @@ -665,18 +679,19 @@ vcdplayer_play(vcdplayer_input_t *this, vcdinfo_itemid_t itemid) /* Set's start origin and size for subsequent seeks. - input: this->cur_lsn, this->play_item - changed: this->origin_lsn, this->end_lsn + input: p_vcdplayer->i_lsn, p_vcdplayer->play_item + changed: p_vcdplayer->origin_lsn, p_vcdplayer->end_lsn */ static void -_vcdplayer_set_origin(vcdplayer_input_t *this) +_vcdplayer_set_origin(vcdplayer_t *p_vcdplayer) { - size_t size = _vcdplayer_get_item_size(this, this->play_item); + size_t size = _vcdplayer_get_item_size(p_vcdplayer, p_vcdplayer->play_item); - this->end_lsn = this->cur_lsn + size; - this->origin_lsn = this->cur_lsn; + p_vcdplayer->end_lsn = p_vcdplayer->i_lsn + size; + p_vcdplayer->origin_lsn = p_vcdplayer->i_lsn; - dbg_print((INPUT_DBG_CALL|INPUT_DBG_LSN), "end LSN: %u\n", this->end_lsn); + dbg_print((INPUT_DBG_CALL|INPUT_DBG_LSN), "end LSN: %u\n", + p_vcdplayer->end_lsn); } #define RETURN_NULL_BLOCK \ @@ -690,60 +705,60 @@ _vcdplayer_set_origin(vcdplayer_input_t *this) return READ_STILL_FRAME #define SLEEP_1_SEC_AND_HANDLE_EVENTS \ - if (this->handle_events()) goto skip_next_play; \ - this->sleep(250000); \ - if (this->handle_events()) goto skip_next_play; \ - this->sleep(250000); \ - if (this->handle_events()) goto skip_next_play; \ - this->sleep(250000); \ - if (this->handle_events()) goto skip_next_play; \ - this->sleep(250000); -/* if (this->in_still) this->force_redisplay(); */ + if (p_vcdplayer->handle_events()) goto skip_next_play; \ + p_vcdplayer->sleep(250000); \ + if (p_vcdplayer->handle_events()) goto skip_next_play; \ + p_vcdplayer->sleep(250000); \ + if (p_vcdplayer->handle_events()) goto skip_next_play; \ + p_vcdplayer->sleep(250000); \ + if (p_vcdplayer->handle_events()) goto skip_next_play; \ + p_vcdplayer->sleep(250000); +/* if (p_vcdplayer->i_still) p_vcdplayer->force_redisplay(); */ /* Handles PBC navigation when reaching the end of a play item. */ static vcdplayer_read_status_t -vcdplayer_pbc_nav (vcdplayer_input_t *this, uint8_t *buf) +vcdplayer_pbc_nav (vcdplayer_t *p_vcdplayer, uint8_t *buf) { /* We are in playback control. */ vcdinfo_itemid_t itemid; - if (0 != this->in_still && this->in_still != -5) { + if (0 != p_vcdplayer->i_still && p_vcdplayer->i_still != STILL_READING) { SLEEP_1_SEC_AND_HANDLE_EVENTS; - if (this->in_still > 0) this->in_still--; + if (p_vcdplayer->i_still > 0) p_vcdplayer->i_still--; return READ_STILL_FRAME; } /* The end of an entry is really the end of the associated sequence (or track). */ - if ( (VCDINFO_ITEM_TYPE_ENTRY == this->play_item.type) && - (this->cur_lsn < this->track_end_lsn) ) { + if ( (VCDINFO_ITEM_TYPE_ENTRY == p_vcdplayer->play_item.type) && + (p_vcdplayer->i_lsn < p_vcdplayer->track_end_lsn) ) { /* Set up to just continue to the next entry */ - this->play_item.num++; + p_vcdplayer->play_item.num++; dbg_print( (INPUT_DBG_LSN|INPUT_DBG_PBC), - "continuing into next entry: %u\n", this->play_item.num); - vcdplayer_play_single_item(this, this->play_item); - this->update_title(); + "continuing into next entry: %u\n", p_vcdplayer->play_item.num); + vcdplayer_play_single_item(p_vcdplayer, p_vcdplayer->play_item); + p_vcdplayer->update_title(); goto skip_next_play; } - switch (this->pxd.descriptor_type) { + switch (p_vcdplayer->pxd.descriptor_type) { case PSD_TYPE_END_LIST: return READ_END; break; case PSD_TYPE_PLAY_LIST: { - int wait_time = vcdinf_get_wait_time(this->pxd.pld); + int wait_time = vcdinf_get_wait_time(p_vcdplayer->pxd.pld); dbg_print(INPUT_DBG_PBC, "playlist wait_time: %d\n", wait_time); - if (_vcdplayer_inc_play_item(this)) + if (_vcdplayer_inc_play_item(p_vcdplayer)) goto skip_next_play; /* Handle any wait time given. */ - if (-5 == this->in_still) { + if (STILL_READING == p_vcdplayer->i_still) { if (wait_time != 0) { - this->in_still = wait_time - 1; + p_vcdplayer->i_still = wait_time - 1; SLEEP_1_SEC_AND_HANDLE_EVENTS ; return READ_STILL_FRAME; } @@ -753,28 +768,28 @@ vcdplayer_pbc_nav (vcdplayer_input_t *this, uint8_t *buf) case PSD_TYPE_SELECTION_LIST: /* Selection List (+Ext. for SVCD) */ case PSD_TYPE_EXT_SELECTION_LIST: /* Extended Selection List (VCD2.0) */ { - int wait_time = vcdinf_get_timeout_time(this->pxd.psd); - uint16_t timeout_offs = vcdinf_get_timeout_offset(this->pxd.psd); - uint16_t max_loop = vcdinf_get_loop_count(this->pxd.psd); + int wait_time = vcdinf_get_timeout_time(p_vcdplayer->pxd.psd); + uint16_t timeout_offs = vcdinf_get_timeout_offset(p_vcdplayer->pxd.psd); + uint16_t max_loop = vcdinf_get_loop_count(p_vcdplayer->pxd.psd); vcdinfo_offset_t *offset_timeout_LID = - vcdinfo_get_offset_t(this->vcd, timeout_offs); + vcdinfo_get_offset_t(p_vcdplayer->vcd, timeout_offs); dbg_print(INPUT_DBG_PBC, "wait_time: %d, looped: %d, max_loop %d\n", - wait_time, this->loop_count, max_loop); + wait_time, p_vcdplayer->i_loop, max_loop); /* Handle any wait time given */ - if (-5 == this->in_still) { - this->in_still = wait_time - 1; + if (STILL_READING == p_vcdplayer->i_still) { + p_vcdplayer->i_still = wait_time - 1; SLEEP_1_SEC_AND_HANDLE_EVENTS ; return READ_STILL_FRAME; } /* Handle any looping given. */ - if ( max_loop == 0 || this->loop_count < max_loop ) { - this->loop_count++; - if (this->loop_count == 0x7f) this->loop_count = 0; - vcdplayer_play_single_item(this, this->loop_item); - if (this->in_still) this->force_redisplay(); + if ( max_loop == 0 || p_vcdplayer->i_loop < max_loop ) { + p_vcdplayer->i_loop++; + if (p_vcdplayer->i_loop == 0x7f) p_vcdplayer->i_loop = 0; + vcdplayer_play_single_item(p_vcdplayer, p_vcdplayer->loop_item); + if (p_vcdplayer->i_still) p_vcdplayer->force_redisplay(); goto skip_next_play; } @@ -786,31 +801,32 @@ vcdplayer_pbc_nav (vcdplayer_input_t *this, uint8_t *buf) itemid.num = offset_timeout_LID->lid; itemid.type = VCDINFO_ITEM_TYPE_LID; dbg_print(INPUT_DBG_PBC, "timeout to: %d\n", itemid.num); - vcdplayer_play(this, itemid); + vcdplayer_play(p_vcdplayer, itemid); goto skip_next_play; } else { - int num_selections = vcdinf_get_num_selections(this->pxd.psd); + int num_selections = vcdinf_get_num_selections(p_vcdplayer->pxd.psd); if (num_selections > 0) { /* Pick a random selection. */ - unsigned int bsn=vcdinf_get_bsn(this->pxd.psd); + unsigned int bsn=vcdinf_get_bsn(p_vcdplayer->pxd.psd); int rand_selection=bsn + (int) ((num_selections+0.0)*rand()/(RAND_MAX+1.0)); #if defined(LIBVCD_VERSION) /* version 0.7.21 or greater */ - lid_t rand_lid=vcdinfo_selection_get_lid(this->vcd, this->cur_lid, + lid_t rand_lid=vcdinfo_selection_get_lid(p_vcdplayer->vcd, + p_vcdplayer->i_lid, rand_selection); #else - lid_t rand_lid=vcdplayer_selection2lid (this, rand_selection); + lid_t rand_lid=vcdplayer_selection2lid (p_vcdplayer, rand_selection); #endif /* LIBVCD_VERSION */ itemid.num = rand_lid; itemid.type = VCDINFO_ITEM_TYPE_LID; dbg_print(INPUT_DBG_PBC, "random selection %d, lid: %d\n", rand_selection - bsn, rand_lid); - vcdplayer_play(this, itemid); + vcdplayer_play(p_vcdplayer, itemid); goto skip_next_play; - } else if (this->in_still) { + } else if (p_vcdplayer->i_still) { /* Hack: Just go back and do still again */ SLEEP_1_SEC_AND_HANDLE_EVENTS ; RETURN_NULL_STILL ; @@ -820,22 +836,22 @@ vcdplayer_pbc_nav (vcdplayer_input_t *this, uint8_t *buf) break; } case VCDINFO_ITEM_TYPE_NOTFOUND: - LOG_ERR(this, "NOTFOUND in PBC -- not supposed to happen\n"); + LOG_ERR(p_vcdplayer, "NOTFOUND in PBC -- not supposed to happen\n"); break; case VCDINFO_ITEM_TYPE_SPAREID2: - LOG_ERR(this, "SPAREID2 in PBC -- not supposed to happen\n"); + LOG_ERR(p_vcdplayer, "SPAREID2 in PBC -- not supposed to happen\n"); break; case VCDINFO_ITEM_TYPE_LID: - LOG_ERR(this, "LID in PBC -- not supposed to happen\n"); + LOG_ERR(p_vcdplayer, "LID in PBC -- not supposed to happen\n"); break; default: ; } /* FIXME: Should handle autowait ... */ - itemid.num = this->next_entry; + itemid.num = p_vcdplayer->next_entry; itemid.type = VCDINFO_ITEM_TYPE_LID; - vcdplayer_play(this, itemid); + vcdplayer_play(p_vcdplayer, itemid); skip_next_play: ; return READ_BLOCK; } @@ -845,52 +861,53 @@ vcdplayer_pbc_nav (vcdplayer_input_t *this, uint8_t *buf) is to do something that's probably right or helpful. */ static vcdplayer_read_status_t -vcdplayer_non_pbc_nav (vcdplayer_input_t *this, uint8_t *buf) +vcdplayer_non_pbc_nav (vcdplayer_t *p_vcdplayer, uint8_t *buf) { /* Not in playback control. Do we advance automatically or stop? */ - switch (this->play_item.type) { + switch (p_vcdplayer->play_item.type) { case VCDINFO_ITEM_TYPE_TRACK: case VCDINFO_ITEM_TYPE_ENTRY: - if (this->autoadvance && this->next_entry != VCDINFO_INVALID_ENTRY) { - this->play_item.num=this->next_entry; - vcdplayer_update_nav(this); + if (p_vcdplayer->autoadvance + && p_vcdplayer->next_entry != VCDINFO_INVALID_ENTRY) { + p_vcdplayer->play_item.num=p_vcdplayer->next_entry; + vcdplayer_update_nav(p_vcdplayer); } else return READ_END; break; case VCDINFO_ITEM_TYPE_SPAREID2: /* printf("SPAREID2\n"); */ - if (this->in_still) { + if (p_vcdplayer->i_still) { RETURN_NULL_STILL ; /* Hack: Just go back and do still again */ - /*this->force_redisplay(); - this->cur_lsn = this->origin_lsn;*/ + /*p_vcdplayer->force_redisplay(); + p_vcdplayer->i_lsn = p_vcdplayer->origin_lsn;*/ } return READ_END; case VCDINFO_ITEM_TYPE_NOTFOUND: - LOG_ERR(this, "NOTFOUND outside PBC -- not supposed to happen\n"); - if (this->in_still) { + LOG_ERR(p_vcdplayer, "NOTFOUND outside PBC -- not supposed to happen\n"); + if (p_vcdplayer->i_still) { RETURN_NULL_STILL ; /* Hack: Just go back and do still again */ - /*this->force_redisplay(); - this->cur_lsn = this->origin_lsn;*/ + /*p_vcdplayer->force_redisplay(); + p_vcdplayer->i_lsn = p_vcdplayer->origin_lsn;*/ } else return READ_END; break; case VCDINFO_ITEM_TYPE_LID: - LOG_ERR(this, "LID outside PBC -- not supposed to happen\n"); - if (this->in_still) { + LOG_ERR(p_vcdplayer, "LID outside PBC -- not supposed to happen\n"); + if (p_vcdplayer->i_still) { RETURN_NULL_STILL ; /* Hack: Just go back and do still again */ - /* this->force_redisplay(); - this->cur_lsn = this->origin_lsn; */ + /* p_vcdplayer->force_redisplay(); + p_vcdplayer->i_lsn = p_vcdplayer->origin_lsn; */ } else return READ_END; break; case VCDINFO_ITEM_TYPE_SEGMENT: - if (this->in_still) { + if (p_vcdplayer->i_still) { /* Hack: Just go back and do still again */ RETURN_NULL_STILL ; } @@ -908,22 +925,24 @@ vcdplayer_non_pbc_nav (vcdplayer_input_t *this, uint8_t *buf) interpret the next item in the playback-control list. */ vcdplayer_read_status_t -vcdplayer_read (vcdplayer_input_t *this, uint8_t *buf, const off_t nlen) +vcdplayer_read (vcdplayer_t *p_vcdplayer, uint8_t *buf, + const off_t nlen) { - this->handle_events (); + p_vcdplayer->handle_events (); - if ( this->cur_lsn >= this->end_lsn ) { + if ( p_vcdplayer->i_lsn >= p_vcdplayer->end_lsn ) { vcdplayer_read_status_t read_status; - /* We've run off of the end of this entry. Do we continue or stop? */ + /* We've run off of the end of p_vcdplayer entry. Do we continue or stop? */ dbg_print( (INPUT_DBG_LSN|INPUT_DBG_PBC), - "end reached, cur: %u, end: %u\n", this->cur_lsn, this->end_lsn); + "end reached, cur: %u, end: %u\n", + p_vcdplayer->i_lsn, p_vcdplayer->end_lsn); handle_item_continuation: - read_status = vcdplayer_pbc_is_on(this) - ? vcdplayer_pbc_nav(this, buf) - : vcdplayer_non_pbc_nav(this, buf); + read_status = vcdplayer_pbc_is_on(p_vcdplayer) + ? vcdplayer_pbc_nav(p_vcdplayer, buf) + : vcdplayer_non_pbc_nav(p_vcdplayer, buf); if (READ_BLOCK != read_status) return read_status; } @@ -938,27 +957,28 @@ vcdplayer_read (vcdplayer_input_t *this, uint8_t *buf, const off_t nlen) */ { - CdIo *img = vcdinfo_get_cd_image(this->vcd); + CdIo *img = vcdinfo_get_cd_image(p_vcdplayer->vcd); typedef struct { - uint8_t subheader [8]; + uint8_t subheader [CDIO_CD_SUBHEADER_SIZE]; uint8_t data [M2F2_SECTOR_SIZE]; uint8_t spare [4]; } vcdsector_t; vcdsector_t vcd_sector; do { - dbg_print(INPUT_DBG_LSN, "LSN: %u\n", this->cur_lsn); - if (cdio_read_mode2_sector(img, &vcd_sector, this->cur_lsn, true)!=0) { + dbg_print(INPUT_DBG_LSN, "LSN: %u\n", p_vcdplayer->i_lsn); + if (cdio_read_mode2_sector(img, &vcd_sector, + p_vcdplayer->i_lsn, true)!=0) { dbg_print(INPUT_DBG_LSN, "read error\n"); return READ_ERROR; } - this->cur_lsn++; + p_vcdplayer->i_lsn++; - if ( this->cur_lsn >= this->end_lsn ) { + if ( p_vcdplayer->i_lsn >= p_vcdplayer->end_lsn ) { /* We've run off of the end of this entry. Do we continue or stop? */ dbg_print( (INPUT_DBG_LSN|INPUT_DBG_PBC), "end reached in reading, cur: %u, end: %u\n", - this->cur_lsn, this->end_lsn); + p_vcdplayer->i_lsn, p_vcdplayer->end_lsn); break; } @@ -968,7 +988,7 @@ vcdplayer_read (vcdplayer_input_t *this, uint8_t *buf, const off_t nlen) */ } while((vcd_sector.subheader[2]&~0x01)==0x60); - if ( this->cur_lsn >= this->end_lsn ) + if ( p_vcdplayer->i_lsn >= p_vcdplayer->end_lsn ) /* We've run off of the end of this entry. Do we continue or stop? */ goto handle_item_continuation; @@ -979,7 +999,7 @@ vcdplayer_read (vcdplayer_input_t *this, uint8_t *buf, const off_t nlen) /* Do if needed */ void -vcdplayer_send_button_update(vcdplayer_input_t *this, const int mode) +vcdplayer_send_button_update(vcdplayer_t *p_vcdplayer, const int mode) { /* dbg_print(INPUT_DBG_CALL, "Called\n"); */ return; @@ -989,22 +1009,23 @@ vcdplayer_send_button_update(vcdplayer_input_t *this, const int mode) /* Older version of vcdimager. You really should consider using 0.7.21 or later as that has bug and memory leak fixes. */ lid_t -vcdplayer_selection2lid (vcdplayer_input_t *this, int entry_num) +vcdplayer_selection2lid (vcdplayer_t *p_vcdplayer, int entry_num) { - /* FIXME: Some of this probably gets moved to vcdinfo. */ + /* FIXME: Some of p_vcdplayer probably gets moved to vcdinfo. */ /* Convert selection number to lid and then entry number...*/ unsigned int offset; - unsigned int bsn=vcdinf_get_bsn(this->pxd.psd); - vcdinfo_obj_t *obj = this->vcd; + unsigned int bsn=vcdinf_get_bsn(p_vcdplayer->pxd.psd); + vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd; dbg_print( (INPUT_DBG_CALL|INPUT_DBG_PBC), - "Called lid %u, entry_num %d bsn %d\n", this->cur_lid, + "Called lid %u, entry_num %d bsn %d\n", p_vcdplayer->i_lid, entry_num, bsn); if ( (entry_num - bsn + 1) > 0) { - offset = vcdinfo_lid_get_offset(obj, this->cur_lid, entry_num-bsn+1); + offset = vcdinfo_lid_get_offset(p_vcdinfo, p_vcdplayer->i_lid, + entry_num-bsn+1); } else { - LOG_ERR(this, "Selection number %u too small. bsn %u\n", + LOG_ERR(p_vcdplayer, "Selection number %u too small. bsn %u\n", entry_num, bsn); return VCDINFO_INVALID_LID; } @@ -1015,21 +1036,21 @@ vcdplayer_selection2lid (vcdplayer_input_t *this, int entry_num) switch (offset) { case PSD_OFS_DISABLED: - LOG_ERR(this, "Selection %u disabled\n", entry_num); + LOG_ERR(p_vcdplayer, "Selection %u disabled\n", entry_num); return VCDINFO_INVALID_LID; case PSD_OFS_MULTI_DEF: - LOG_ERR(this, "Selection %u multi_def\n", entry_num); + LOG_ERR(p_vcdplayer, "Selection %u multi_def\n", entry_num); return VCDINFO_INVALID_LID; case PSD_OFS_MULTI_DEF_NO_NUM: - LOG_ERR(this, "Selection %u multi_def_no_num\n", entry_num); + LOG_ERR(p_vcdplayer, "Selection %u multi_def_no_num\n", entry_num); return VCDINFO_INVALID_LID; default: ; } - ofs = vcdinfo_get_offset_t(obj, offset); + ofs = vcdinfo_get_offset_t(p_vcdinfo, offset); if (NULL == ofs) { - LOG_ERR(this, "error in vcdinfo_get_offset\n"); + LOG_ERR(p_vcdplayer, "error in vcdinfo_get_offset\n"); return -1; } dbg_print(INPUT_DBG_PBC, @@ -1038,7 +1059,7 @@ vcdplayer_selection2lid (vcdplayer_input_t *this, int entry_num) return ofs->lid; } else { - LOG_ERR(this, "invalid or unset entry %u\n", entry_num); + LOG_ERR(p_vcdplayer, "invalid or unset entry %u\n", entry_num); return VCDINFO_INVALID_LID; } } |
