示例#1
0
文件: lseek1.c 项目: arpruss/ozdev
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;
}
示例#2
0
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);
    }
}