- if(frame_buffer.size())
- {
- PluginClientFrame *frame = frame_buffer.get(0);
- int total_frames = update_timer->get_difference() *
- frame->period_d /
- frame->period_n /
- 1000;
- if(total_frames) update_timer->subtract(total_frames *
- frame->period_n *
- 1000 /
- frame->period_d);
-
-// printf("PluginClient::get_gui_update_frames %d %ld %d %d %d\n",
-// __LINE__,
-// update_timer->get_difference(),
-// frame->period_n * 1000 / frame->period_d,
-// total_frames,
-// frame_buffer.size());
-
-// Add forced frames
- for(int i = 0; i < frame_buffer.size(); i++)
- if(frame_buffer.get(i)->force) total_frames++;
- total_frames = MIN(frame_buffer.size(), total_frames);
-
-
- return total_frames;
- }
- else
- {
- return 0;
- }
+ PluginClientFrame *frame = client_frames.first;
+ if( !frame ) return 0;
+ double tracking_position = get_tracking_position();
+ int direction = get_tracking_direction();
+ int ret = !(direction == PLAY_REVERSE ?
+ frame->position < tracking_position :
+ frame->position > tracking_position);
+ return ret;