//------------------------------------------------------------------------ bool PresetFile::writeChunkList () { // Update list offset TSize pos = 0; stream->tell (&pos); if (!(seekTo (kListOffsetPos) && writeSize (pos) && seekTo (pos))) return false; // Write list if (!writeID (getChunkID (kChunkList))) return false; if (!writeInt32 (entryCount)) return false; for (int32 i = 0; i < entryCount; i++) { Entry& e = entries[i]; if (!(writeID (e.id) && writeSize (e.offset) && writeSize (e.size))) return false; } return true; }
bool VTTScanner::scanFloat(float& number) { Run integerRun = collectWhile<isASCIIDigit>(); seekTo(integerRun.end()); Run decimalRun(getPosition(), getPosition(), m_is8Bit); if (scan('.')) { decimalRun = collectWhile<isASCIIDigit>(); seekTo(decimalRun.end()); } // At least one digit required. if (integerRun.isEmpty() && decimalRun.isEmpty()) { // Restore to starting position. seekTo(integerRun.start()); return false; } size_t lengthOfFloat = Run(integerRun.start(), getPosition(), m_is8Bit).length(); bool validNumber; if (m_is8Bit) number = charactersToFloat(integerRun.start(), lengthOfFloat, &validNumber); else number = charactersToFloat(reinterpret_cast<const UChar*>(integerRun.start()), lengthOfFloat, &validNumber); if (!validNumber) number = std::numeric_limits<float>::max(); return true; }
long KFile::getFileLen() { long lVal = getFilePos(); seekTo(0, KFile::KFILE_END); long fileLen = getFilePos(); seekTo(lVal, KFILE_BEGIN); return fileLen; }
bool seekToPathStart() { if(!seekTo("<path")) { // printf("No <path> tag"); return false; } if(!seekTo(" d=\"")) { // printf("No d=\" in path tag"); return false; } return true; }
int KFile::getAllFileData(char* pFileKData) { int iRead = 0; long fileLen = getFileLen(); seekTo(0, KFILE_BEGIN); while (iRead < fileLen) { int iReaded = 0; if ((iReaded = read((unsigned char*) pFileKData + iRead, 2048)) > 0) { iRead += iReaded; } else { break; } } if (iRead != fileLen) { delete[] pFileKData; return -1; } else { return fileLen; } }
void Logstalgia::init() { debugLog("init called\n"); ipSummarizer = new Summarizer(fontSmall, 2, 40, 0, 2.0f); reset(); readLog(); //add default groups if(summGroups.size()==0) { //images - file is under images or addGroup("CSS", "\\.css\\b", 15); addGroup("Script", "\\.js\\b", 15); addGroup("Images", "/images/|\\.(jpe?g|gif|bmp|tga|ico|png)\\b", 20); } //always fill remaining space with Misc, (if there is some) if(remaining_space>50) { addGroup(summGroups.size()>0 ? "Misc" : "", ".*"); } SDL_ShowCursor(false); //set start position if(gStartPosition > 0.0 && gStartPosition < 1.0) { seekTo(gStartPosition); } }
bool MediaPlayer::setCapabilityValue( MediaPlayer::Capability cap, int value) { switch ( cap ) { case MediaPlayer::CapChangeVolume: if ( m_gst_audio_volume ) { g_object_set( G_OBJECT(m_gst_audio_volume), "volume", (double) value / 100, NULL ); return true; } break; case MediaPlayer::CapChangePitch: return adjustPitch( value ); case MediaPlayer::CapChangeTempo: // Let's spread it to 0.75 ... +1.25 m_tempoRate = (value / 200.0) + 0.75; position(); seekTo( m_lastKnownPosition ); break; case MediaPlayer::CapVoiceRemoval: return toggleKaraokeSplitter( value ); } return false; }
void Logstalgia::init() { ipSummarizer = new Summarizer(fontSmall, 100, 2.0f); ipSummarizer->setSize(2, 40, 0); reset(); readLog(); //add default groups if(summarizers.empty()) { //images - file is under images or addGroup("URI", "CSS", "(?i)\\.css\\b", 15); addGroup("URI", "Script", "(?i)\\.js\\b", 15); addGroup("URI", "Images", "(?i)/images/|\\.(jpe?g|gif|bmp|tga|ico|png)\\b", 20); } //always fill remaining space with Misc, (if there is some) if(remaining_space>50) { addGroup("URI", "Misc", ".*"); } resizeGroups(); SDL_ShowCursor(false); //set start position if(settings.start_position > 0.0 && settings.start_position < 1.0) { seekTo(settings.start_position); } // show slider so user knows its there unless recording if(frameExporter==0) slider.show(); }
bool MatrixFile::haveSetColumnAt(size_t x) const { if (m_mode == WriteOnly) { return m_setColumns->get(x); } if (m_readyToReadColumn >= 0 && size_t(m_readyToReadColumn) == x) return true; Profiler profiler("MatrixFile::haveSetColumnAt"); #ifdef DEBUG_MATRIX_FILE_READ_SET std::cerr << "MatrixFile[" << m_fd << "]::haveSetColumnAt(" << x << ")" << std::endl; // std::cerr << "."; #endif unsigned char set = 0; if (!seekTo(x)) { std::cerr << "ERROR: MatrixFile::haveSetColumnAt(" << x << "): Seek failed" << std::endl; throw FileOperationFailed(m_fileName, "seek"); } ssize_t r = -1; r = ::read(m_fd, &set, 1); if (r < 0) { ::perror("MatrixFile::haveSetColumnAt: read failed"); throw FileReadFailed(m_fileName); } if (set) m_readyToReadColumn = int(x); return set; }
void VTTScanner::skipRun(const Run& run) { ASSERT(run.start() <= end()); ASSERT(run.end() >= run.start()); ASSERT(run.end() <= end()); seekTo(run.end()); }
void Gource::mouseClick(SDL_MouseButtonEvent *e) { if(e->type != SDL_MOUSEBUTTONDOWN || commitlog==0) return; //wheel up if(e->button == SDL_BUTTON_WHEELUP) { zoom(true); return; } //wheel down if(e->button == SDL_BUTTON_WHEELDOWN) { zoom(false); return; } if(e->button == SDL_BUTTON_RIGHT) { toggleCameraMode(); return; } if(e->button == SDL_BUTTON_LEFT) { mousepos = vec2f(e->x, e->y); mouseclicked=true; if(canSeek()) { float position; if(slider.click(mousepos, &position)) { seekTo(position); } } } }
//let's get into the business bool ChunkFile::descend(uint32 id) { id=flipID(id); if (read) { bool found = false; //save information to restore after the next Ascend stack[numLevels].parentStartLocation = pos; stack[numLevels].parentEOF = eof; ChunkInfo temp = stack[numLevels]; int firstID = 0; //let's search through children.. while(pos<eof) { stack[numLevels].ID = readInt(); if (firstID == 0) firstID=stack[numLevels].ID|1; stack[numLevels].length = readInt(); stack[numLevels].startLocation = pos; if (stack[numLevels].ID == id) { found = true; break; } else { seekTo(pos + stack[numLevels].length); //try next block } } //if we found nothing, return false so the caller can skip this if (!found) { #ifdef CHUNKDEBUG ILOG("Couldn't find %c%c%c%c", id, id>>8, id>>16, id>>24); #endif stack[numLevels]=temp; seekTo(stack[numLevels].parentStartLocation); return false; } //descend into it //pos was set inside the loop above eof = stack[numLevels].startLocation + stack[numLevels].length; numLevels++; #ifdef CHUNKDEBUG ILOG("Descended into %c%c%c%c", id, id>>8, id>>16, id>>24); #endif return true; } else {
//------------------------------------------------------------------------ bool PresetFile::readChunkList () { seekTo (0); entryCount = 0; char8 classString[kClassIDSize + 1] = {0}; // Read header int32 version = 0; TSize listOffset = 0; if (!(readEqualID (getChunkID (kHeader)) && readInt32 (version) && verify (stream->read (classString, kClassIDSize)) && readSize (listOffset) && listOffset > 0 && seekTo (listOffset))) return false; classID.fromString (classString); // Read list int32 count = 0; if (!readEqualID (getChunkID (kChunkList))) return false; if (!readInt32 (count)) return false; if (count > kMaxEntries) count = kMaxEntries; for (int32 i = 0; i < count; i++) { Entry& e = entries[i]; if (!(readID (e.id) && readSize (e.offset) && readSize (e.size))) break; entryCount++; } return entryCount > 0; }
bool VTTScanner::scanPercentage(float& percentage) { Position savedPosition = getPosition(); if (!scanFloat(percentage)) return false; if (scan('%')) return true; // Restore scanner position. seekTo(savedPosition); return false; }
StorageHandle PackedStorage::openForReading(PageID page, bool countAsAccess) { int desc; if ( (desc=(int)LegacyStorage::openForReading(page, false))!= -1 ) { if (!seekTo(page, desc, false)) { //this is not an error condition here, may and shall happen! ::close(desc); } else { return (StorageHandle)desc; } } return StorageHandle(); }
//------------------------------------------------------------------------ bool PresetFile::getUnitProgramListID (int32& unitProgramListID) { const Entry* e = getEntry (kProgramData); if (e && seekTo (e->offset)) { if (readInt32 (unitProgramListID)) { return true; } } return false; }
void MatrixFile::initialise() { Profiler profiler("MatrixFile::initialise", true); assert(m_mode == WriteOnly); m_setColumns = new ResizeableBitset(m_width); off_t off = m_headerSize + (m_width * m_height * m_cellSize) + m_width; #ifdef DEBUG_MATRIX_FILE std::cerr << "MatrixFile[" << m_fd << "]::initialise(" << m_width << ", " << m_height << "): cell size " << m_cellSize << ", header size " << m_headerSize << ", resizing file" << std::endl; #endif if (::lseek(m_fd, off - 1, SEEK_SET) < 0) { ::perror("ERROR: MatrixFile::initialise: seek to end failed"); throw FileOperationFailed(m_fileName, "lseek"); } unsigned char byte = 0; if (::write(m_fd, &byte, 1) != 1) { ::perror("ERROR: MatrixFile::initialise: write at end failed"); throw FileOperationFailed(m_fileName, "write"); } if (::lseek(m_fd, 0, SEEK_SET) < 0) { ::perror("ERROR: MatrixFile::initialise: Seek to write header failed"); throw FileOperationFailed(m_fileName, "lseek"); } size_t header[2]; header[0] = m_width; header[1] = m_height; if (::write(m_fd, header, 2 * sizeof(size_t)) != 2 * sizeof(size_t)) { ::perror("ERROR: MatrixFile::initialise: Failed to write header"); throw FileOperationFailed(m_fileName, "write"); } if (m_mode == WriteOnly) { totalStorage += (m_headerSize + (m_width * m_height * m_cellSize) + m_width); } #ifdef DEBUG_MATRIX_FILE std::cerr << "MatrixFile[" << m_fd << "]::initialise(" << m_width << ", " << m_height << "): storage " << (m_headerSize + m_width * m_height * m_cellSize + m_width) << std::endl; std::cerr << "MatrixFile: Total storage " << totalStorage/1024 << "K" << std::endl; #endif seekTo(0); }
//------------------------------------------------------------------------ bool PresetFile::writeHeader () { // header id + version + class id + list offset (unknown yet) char8 classString[kClassIDSize + 1] = {0}; classID.toString (classString); return seekTo (0) && writeID (getChunkID (kHeader)) && writeInt32 (kFormatVersion) && verify (stream->write (classString, kClassIDSize)) && writeSize (0); }
String VTTScanner::extractString(const Run& run) { ASSERT(run.start() == position()); ASSERT(run.start() <= end()); ASSERT(run.end() >= run.start()); ASSERT(run.end() <= end()); String s; if (m_is8Bit) s = String(m_data.characters8, run.length()); else s = String(m_data.characters16, run.length()); seekTo(run.end()); return s; }
RESULT eServiceMP3::seekRelative(int direction, pts_t to) { if (!m_gst_playbin) return -1; pts_t ppos; getPlayPosition(ppos); ppos += to * direction; if (ppos < 0) ppos = 0; seekTo(ppos); return 0; }
void Logstalgia::mouseClick(SDL_MouseButtonEvent *e) { if(e->type != SDL_MOUSEBUTTONDOWN) return; if(e->button == SDL_BUTTON_LEFT) { if(!settings.disable_progress) { float position; if(slider.click(mousepos, &position)) { seekTo(position); } } } }
StorageHandle PackedStorage::openForWriting(PageID page) { static bool wroteError=false; char filename[PATH_MAX]; getFilename(filename, sizeof(filename), page); //first try int desc=open(filename, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); if (desc != -1) { if (!seekTo(page, desc, true)) { ::close(desc); return StorageHandle(); } if ( maxBytes && byteCount>maxBytes ) freeSpace(); return (StorageHandle)desc; } //no space on disk? make some space available if (errno == ENOSPC) freeSpace(); //second try desc=open(filename, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); if (desc==-1 && !wroteError) { //report error to syslog - once! wroteError=true; esyslog("OSD-Teletext: Error opening teletext file %s: %s", filename, strerror(errno)); } if (desc==-1) return StorageHandle(); else if (!seekTo(page, desc, true)) { ::close(desc); return StorageHandle(); } if ( maxBytes && byteCount>maxBytes ) freeSpace(); return (StorageHandle)desc; }
void Logstalgia::mouseClick(SDL_MouseButtonEvent *e) { debugLog("click! (x=%d,y=%d)\n", e->x, e->y); if(e->type != SDL_MOUSEBUTTONDOWN) return; if(e->button == SDL_BUTTON_LEFT) { if(!gDisableProgress) { float position; if(slider.click(mousepos, &position)) { seekTo(position); } } } }
void VideoImpl::resetMovie() { if (_seekEnabled) { if (_rate > 0.0) { seekTo((guint64) 0); qWarning() << "update Rate" << endl; _updateRate(); } else { // NOTE: Untested. seekTo(_duration); qWarning() << "update Rate" << endl; _updateRate(); } } else { qDebug() << "Seeking not enabled: reloading the movie" << endl; loadMovie(_uri); } }
bool VideoImpl::seekTo(double position) { gint64 duration; if (!gst_element_query_duration (_pipeline, GST_FORMAT_TIME, &duration)) { qDebug() << "Cannot get duration of file" << endl; return false; } // Make sure position is in [0,1]. position = qBound(0.0, position, 1.0); // Seek at position in nanoseconds. return seekTo((guint64)(position*duration)); }
bool Reader::accessProperty(PropertyInfo& p) { Request r = property(stringFromId(p.name), stringFromId(p.interpretation), p); p.requested = r.m_want; p.propertyData = r.m_data; if (p.requested) { seekTo(p); readProperty(p); } return true; }
RESULT eServiceMP3::selectTrack(unsigned int i) { pts_t ppos; getPlayPosition(ppos); ppos -= 90000; if (ppos < 0) ppos = 0; int ret = selectAudioStream(i); if (!ret) { /* flush */ seekTo(ppos); } return ret; }
bool RCommitLog::getCommitAt(float percent, RCommit& commit) { if(!seekable) return false; SeekLog* seeklog = ((SeekLog*)logf); //get the current pointer long currpointer = seeklog->getPointer(); seekTo(percent); bool success = findNextCommit(commit,500); //set the pointer back seeklog->setPointer(currpointer); return success; }
/* initializeCommand () ** ** Initialize the BLITZ DISK file by writing out an empty directory. */ void initializeCommand () { if (commandOptionV) printf ("INITIALIZING THE FILE SYSTEM...\n"); openDiskFile (0); /* Existing = false */ seekTo (4); /* Skip past "BLZd" magic number */ writeInteger (0x73747562); /* Magic number = "stub" */ writeInteger (0); /* Number of file */ writeInteger (1); /* Next Free Sector */ if (commandOptionV) printf ("Number of files on disk = 0\n"); if (commandOptionV) printf ("Next free sector = 1\n"); if (commandOptionV) printf ("Number of available sectors = %d\n", numberSectorsOnDisk-1); closeFiles (); }
bool VTTScanner::scanRun(const Run& run, const String& toMatch) { ASSERT(run.start() == position()); ASSERT(run.start() <= end()); ASSERT(run.end() >= run.start()); ASSERT(run.end() <= end()); size_t matchLength = run.length(); if (toMatch.length() > matchLength) return false; bool matched; if (m_is8Bit) matched = WTF::equal(toMatch.impl(), m_data.characters8, matchLength); else matched = WTF::equal(toMatch.impl(), m_data.characters16, matchLength); if (matched) seekTo(run.end()); return matched; }