extern long lseek1(long offset, int _fromwhere) { static unsigned right_part,default_part_length; static byte fromwhere; fromwhere=_fromwhere; if(NULL==_oz_the_file.buffer || _oz_the_file.mode != O_RDONLY) return -1; if(fromwhere==SEEK_CUR && offset==0) return _oz_the_file.curpos; if(fromwhere==SEEK_CUR) offset+=_oz_the_file.curpos; else if(fromwhere==SEEK_END) { while(__read1(NULL,16384,1)==16384); offset+=_oz_the_file.curpos; } if(offset<0) { if(rewind1()>=0) return 0; else return -1; } default_part_length=_oz_the_file.first_part_length-sizeof(cfile_header_t); right_part=offset/default_part_length; if(!__ozloadpart1(right_part)) /* probably beyond EOF */ { if(rewind1()<0) return -1; while(__read1(NULL,16384,1)==16384); return _oz_the_file.curpos; } _oz_the_file.curpos=right_part*(long)default_part_length; __read1(NULL,offset-_oz_the_file.curpos,1); return _oz_the_file.curpos; }
void JogShuttle::customEvent(QEvent* e) { switch (e->type()) { case JOG_BACK1: emit rewind1(); break; case JOG_FWD1: emit forward1(); break; case JOG_BACK: emit rewind(-1); break; case JOG_FWD: emit forward(1); break; case JOG_BACK_SLOW: emit rewind(-0.5); break; case JOG_FWD_SLOW: emit forward(0.5); break; case JOG_BACK_FAST: emit rewind(-2); break; case JOG_FWD_FAST: emit forward(2); break; case JOG_STOP: emit stop(); break; default: emit button(e->type() - 20000); } }