static int Reserve (TRI_string_buffer_t * self, const size_t size) { char* ptr; if (size < 1) { return TRI_ERROR_NO_ERROR; } if (size > Remaining(self)) { ptrdiff_t off; size_t len; off = self->_current - self->_buffer; len = (size_t) (1.2 * (self->_len + size)); assert(len > 0); ptr = TRI_Reallocate(self->_memoryZone, self->_buffer, len + 1); if (ptr == NULL) { return TRI_ERROR_OUT_OF_MEMORY; } self->_buffer = ptr; self->_len = len; self->_current = self->_buffer + off; memset(self->_current, 0, Remaining(self) + 1); } return TRI_ERROR_NO_ERROR; }
QVariant DownloadTable::dataDisplayRole(const QModelIndex &index) const { switch(index.column()) { case ColumnFile: return downloadManager->downloadAt(index.row()).file; case ColumnStatus: return DownloadStatus2String(downloadManager->downloadAt(index.row()).status); case ColumnSize: if(downloadManager->downloadAt(index.row()).size != 0) return B2String(downloadManager->downloadAt(index.row()).size); else return ""; case ColumnProgress: if(downloadManager->downloadAt(index.row()).size != 0) return tr("%1 %").arg((100 * downloadManager->downloadAt(index.row()).progress) / (float)downloadManager->downloadAt(index.row()).size, 0, '0', 2); return tr("0.00 %"); case ColumnSpeed: if(downloadManager->downloadAt(index.row()).status == net::StatInProgress) return B2String(downloadManager->downloadAt(index.row()).speed).append("/s"); return ""; case ColumnRemaining: if(downloadManager->downloadAt(index.row()).status == net::StatInProgress) return Remaining(Remaining(downloadManager->downloadAt(index.row()).progress, downloadManager->downloadAt(index.row()).size, downloadManager->downloadAt(index.row()).speed)); return ""; case ColumnUrl: return downloadManager->downloadAt(index.row()).url; case ColumnPath: return downloadManager->downloadAt(index.row()).path; } return QVariant(); }
std::string BinaryFP::ReadString() { std::string str; if (Remaining() <= 0) return str; char c=fgetc(m_FP); while (c!=0 && Remaining()>0) { str+=c; c=fgetc(m_FP); } return str; }
QVariant DownloadTable::dataUserRole(const QModelIndex &index) const { switch(index.column()) { case ColumnFile: return downloadManager->downloadAt(index.row()).file; case ColumnStatus: return downloadManager->downloadAt(index.row()).status; case ColumnSize: return downloadManager->downloadAt(index.row()).size; case ColumnProgress: if(downloadManager->downloadAt(index.row()).size == 0) return 0; else return downloadManager->downloadAt(index.row()).progress/(qreal)downloadManager->downloadAt(index.row()).size; case ColumnSpeed: return downloadManager->downloadAt(index.row()).speed; case ColumnRemaining: return Remaining( downloadManager->downloadAt(index.row()).progress, downloadManager->downloadAt(index.row()).size, downloadManager->downloadAt(index.row()).speed); case ColumnUrl: return downloadManager->downloadAt(index.row()).url; case ColumnPath: return downloadManager->downloadAt(index.row()).path; } return QVariant(); }
int BinaryFP::Read(unsigned char* data, size_t count) { size_t num = Remaining(); if (num < count) return fread(data, sizeof(unsigned char), num, m_FP); else return fread(data, sizeof(unsigned char), count, m_FP); }
unsigned short BinaryFP::ReadUInt16() { if (Remaining()/sizeof(unsigned short) == 0) return 0; unsigned short s; //TODO endian s = ((unsigned char)fgetc(m_FP)); s |= ((unsigned char)fgetc(m_FP)) << 8; return s; }
float BinaryFP::ReadFloat() { if (Remaining()/sizeof(unsigned int) == 0) return 0; unsigned int i; //TODO endian i = ((unsigned char)fgetc(m_FP)); i |= ((unsigned char)fgetc(m_FP)) << 8; i |= ((unsigned char)fgetc(m_FP)) << 16; i |= ((unsigned char)fgetc(m_FP)) << 24; return *((float*)(&i)); }
unsigned int BinaryFP::ReadUInt32() { if (Remaining()/sizeof(unsigned int) == 0) return 0; unsigned int i; //TODO endian i = ((unsigned char)fgetc(m_FP)); i |= ((unsigned char)fgetc(m_FP)) << 8; i |= ((unsigned char)fgetc(m_FP)) << 16; i |= ((unsigned char)fgetc(m_FP)) << 24; return i; }
bool CExtradataParser::NextMPEGStartCode(BYTE &code) { BitByteAlign(); DWORD dw = (DWORD)-1; do { if(!Remaining()) return false; dw = (dw << 8) | (BYTE)BitRead(8); } while((dw&0xffffff00) != 0x00000100); code = (BYTE)(dw&0xff); return true; }
MessageType_t NetworkReader::ReadMessageType() { if (Remaining() >= sizeof(MessageType_t)) { MessageType_t output; ClientSafeRead<MessageType_t>((char*)&output, &cursor, swapped); return output; } else { return 0; } }
float NetworkReader::ReadSingle() { if (Remaining() >= 4) { float output; ClientSafeRead<float>((char*)&output, &cursor, swapped); return output; } else { return 0; } }
uint32_t NetworkReader::ReadUint32() { if (Remaining() >= 4) { uint32_t output; ClientSafeRead<uint32_t>((char*)&output, &cursor, swapped); return output; } else { return 0; } }
int8_t NetworkReader::ReadInt8() { if (Remaining() >= 1) { int8_t output; ClientSafeRead<int8_t>((char*)&output, &cursor, swapped); return output; } else { return 0; } }
int CzDataInput::getUBytes(unsigned char *data, int count) { if (EndOfFile) return 0; int rem = Remaining(); if (count > rem) { count = rem; EndOfFile = true; } memcpy(data, &Data[Position], count); Position += count; if (Position >= Length) EndOfFile = true; return count; }
size_t CByteParser::Pos() const { return (size_t)(m_pEnd - m_pData - Remaining()); }
size_t CExtradataParser::ParseMPEGSequenceHeader(BYTE *pTarget) { BYTE id = 0; while(Remaining() && id != 0xb3) { if(!NextMPEGStartCode(id)) { return 0; } } if(id != 0xb3) { return 0; } size_t shpos = Pos() - 4; BitRead(12); // Width BitRead(12); // Height BitRead(4); // AR BitRead(4); // FPS BitRead(18); // Bitrate MARKER; BitRead(10); // VBV BitRead(1); // Constrained Flag // intra quantisizer matrix if(BitRead(1)) { for (uint8_t i = 0; i < 64; i++) { BitRead(8); } } // non-intra quantisizer matrix if(BitRead(1)) { for (uint8_t i = 0; i < 64; i++) { BitRead(8); } } size_t shlen = Pos() - shpos; size_t shextpos = 0; size_t shextlen = 0; if(NextMPEGStartCode(id) && id == 0xb5) { // sequence header ext shextpos = Pos() - 4; int startcode = BitRead(4); // Start Code Id; TODO: DIfferent start code ids mean different length of da2a ASSERT(startcode == 1); BitRead(1); // Profile Level Escape BitRead(3); // Profile BitRead(4); // Level BitRead(1); // Progressive BitRead(2); // Chroma BitRead(2); // Width Extension BitRead(2); // Height Extension BitRead(12); // Bitrate Extension MARKER; BitRead(8); // VBV Buffer Size Extension BitRead(1); // Low Delay BitRead(2); // FPS Extension n BitRead(5); // FPS Extension d shextlen = Pos() - shextpos; } memcpy(pTarget, Start()+shpos, shlen); if (shextpos) { memcpy(pTarget+shlen, Start()+shextpos, shextlen); } return shlen + shextlen; }
unsigned char BinaryFP::ReadUInt8() { if (Remaining() == 0) return 0; return (unsigned char)fgetc(m_FP); }