
#include "ScrubView.H"
#include <FL/gl.h>
#include <iostream>
#include <FL/Fl.H>

ScrubView::ScrubView( int x, int y, int w, int h, const char *l )
	: Fl_Gl_Window( x, y, w, h, l )
{
	m_dirty = true;
	m_scrub_clip = false;
	m_scrub_clip_position = 0.0;
	m_next_frame = false;

/*	m_fBrowser.addFile("/home/oracle/var/video/linuxday_frequency/dv-2007.11.10_14-00-59.mov");
	m_fBrowser.addFile("/home/oracle/var/video/test-clips/stuff-2007.03.17_11-15-05.mov");
	m_fBrowser.addFile("/home/oracle/var/video/test-clips/stuff-2007.03.17_16-34-26.mov");*/

/*	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-001.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-002.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-003.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-004.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-005.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-006.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-007.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-008.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-009.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-010.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-011.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-012.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-013.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-014.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-015.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-016.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-017.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-018.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-019.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-020.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-021.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-022.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-023.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-024.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-025.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-026.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-027.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-028.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-029.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-030.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-031.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-032.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-033.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-034.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-035.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-036.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-037.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-038.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-039.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-040.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-041.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-042.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-043.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-044.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-045.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-046.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-047.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-048.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-049.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-050.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-051.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-052.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-053.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-054.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-055.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-056.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-057.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-058.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-059.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-060.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-061.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-062.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-063.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-064.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-065.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-066.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-067.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-068.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-069.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-070.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-071.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-072.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-073.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-074.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-075.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-076.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-077.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-078.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-079.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-080.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-081.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-082.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-083.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-084.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-085.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-086.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-087.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-088.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-089.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-090.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-091.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-092.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-093.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-094.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-095.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-096.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-097.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-098.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-099.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-100.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-101.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-102.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-103.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-104.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-105.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-106.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-107.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-108.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-109.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-110.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-111.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-112.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-113.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-114.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-115.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-116.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-117.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-118.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-119.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-120.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-121.mov");
	m_fBrowser.addFile("/mnt/western_disk/western2/tape_1/tape_01-122.mov");


	m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-001.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-002.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-003.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-004.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-005.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-006.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-007.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-008.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-009.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-010.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-011.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-012.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-013.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-014.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-015.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-016.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-017.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-018.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-019.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-020.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-021.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-022.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-023.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-024.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-025.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-026.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-027.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-028.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-029.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-030.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-031.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-032.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-033.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-034.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-035.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-036.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-037.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-038.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-039.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-040.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-041.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-042.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-043.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-044.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-045.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-046.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-047.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-048.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-049.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-050.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-051.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-052.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-053.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-054.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-055.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-056.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-057.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-058.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-059.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-060.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-061.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-062.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-063.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-064.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-065.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-066.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-067.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-068.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-069.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-070.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-071.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-072.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-073.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-074.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-075.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-076.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-077.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-078.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-079.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-080.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-081.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-082.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-083.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-084.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-085.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-086.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-087.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-088.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-089.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-090.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-091.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-092.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-093.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-094.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-095.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-096.mov");
m_fBrowser.addFile("/mnt/western_disk/western2/tape_2/tape_02-097.mov");*/


}
ScrubView::~ScrubView()
{
}
static GLuint textures[1];
#define T_W 1024
#define T_H 1024
#define TEXTURE_WIDTH 1024.0 
#define TEXTURE_HEIGHT 1024.0

void ScrubView::draw()
{
	if ( !valid() ) {
		glLoadIdentity(); glViewport( 0, 0, w(), h() );
		glOrtho( 0, 10, 10, 0, -20000, 10000 ); glEnable( GL_BLEND );
		glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
		glEnable (GL_TEXTURE_2D);
	}
	glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

	static bool once = true;
	if (once) {
		static unsigned char p[3 * T_W * T_H] = { 0 };
		glGenTextures( 1, textures );
		for ( int i = 0; i < 1; i++ ) {
			glBindTexture (GL_TEXTURE_2D, textures[i] );
			glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
			glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
			glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
			glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
			glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
			glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
			glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, T_W, T_H, 0, GL_RGB, GL_UNSIGNED_BYTE, p);
		}
		once = false;
	}
	glBindTexture( GL_TEXTURE_2D, textures[0] );
	static int video_w, video_h;
	if ( m_dirty ) {
		frame_rgb* frame;
		if ( m_scrub_clip ) {
			frame = m_fBrowser.getFrameFromLastClip( m_scrub_clip_position );
		} else if ( m_next_frame ) {
			frame = m_fBrowser.getNextFrame();
		} else {
			frame = m_fBrowser.getFrame( m_position );
		}
		if (!frame) { return; }
		video_w = frame->w;
		video_h = frame->h;
		glTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, frame->w, frame->h, GL_RGB, GL_UNSIGNED_BYTE, frame->data );
		m_dirty = false;
		if (!m_scrub_clip) {
			do_callback();
		}
	}
	glColor3f( 1.0f, 1.0f, 1.0f );

	float image_w = (video_w / TEXTURE_WIDTH);
	//float image_h = (video_h  / TEXTURE_HEIGHT);
	float image_h = (335  / TEXTURE_HEIGHT);
	float gl_x, gl_y, gl_w, gl_h;

	gl_x = 0.0;
	gl_y = 0.0;
	gl_w = 10.0;
	gl_h = 10.0;

	//float video_aspect = (float)video_w / (float)video_h;
	float video_aspect = 2.35;
	float window_aspect = (float)w() / (float)h();
	float video_window_aspect = video_aspect / window_aspect;

	if ( video_window_aspect > 1.0 ) {
		gl_h = 10.0 / video_window_aspect;
	} else {
		gl_w = 10.0 * video_window_aspect;
	}
	gl_x = ( 10.0 - gl_w ) / 2.0;
	gl_y = ( 10.0 - gl_h ) / 2.0;

	
	static double top_off = (0.1171875);
	glBegin (GL_QUADS);
		glTexCoord2f ( 0.0,          top_off );
		glVertex3f   ( gl_x,         gl_y,          0.0 );
		glTexCoord2f ( image_w,      top_off ); 
		glVertex3f   ( gl_x + gl_w,  gl_y,          0.0 );
		glTexCoord2f ( image_w,      image_h+top_off  ); 
		glVertex3f   ( gl_x + gl_w,  gl_y + gl_h,   0.0 );
		glTexCoord2f ( 0.0,          image_h+top_off   ); 
		glVertex3f   ( gl_x,         gl_y + gl_h,   0.0 );
	glEnd ();

}
void ScrubView::scrub_clip_position( double pos )
{
	m_scrub_clip_position = pos;
	m_dirty = true;
	m_scrub_clip = true;
	stop();
}
void ScrubView::seek_position( int64_t pos )
{
	m_position = pos;
	m_dirty = true;
	m_scrub_clip = false;
	stop();
}
void playback_callback( void* data ) {
	ScrubView* sv = (ScrubView*)data;
	sv->nextFrame();
	Fl::repeat_timeout(0.04, playback_callback, data );
}
void ScrubView::nextFrame()
{
	m_next_frame = true;
	m_scrub_clip = false;
	m_dirty = true;
	redraw();
}
void ScrubView::play()
{
	Fl::add_timeout(0.04, playback_callback, this);
}
void ScrubView::stop()
{
	Fl::remove_timeout( playback_callback, this );
	m_next_frame = false;
}


