WaveHeader::WaveHeader( int sampleRate, int numSamples, int bytesPerSample, int bitsPerSample, int numChannels ) : _headerSize( HEADER_SIZE ), _sampleRate( sampleRate ), _numSamples( numSamples ), _bytesPerSample( bytesPerSample ), _bitsPerSample( bitsPerSample ), _numChannels( numChannels ) { memset( &_header, 0, sizeof(_header) ); // Chunk id is four characters: "RIFF" SetStr4( CHUNK_ID_IDX, "RIFF" ); // Chunk size is a 32 bit integer that stores size of the entire chunk of wave // data, i.e., the header plus samples. SetInt32(CHUNK_SIZE_IDX, CHUNK1_SIZE + CHUNK_PREFIX_SIZE + GetAudioDataSizeInBytes() ); // Format contains the letters "WAVE" SetStr4( FORMAT_IDX, "WAVE" ); // SubchunkID1 contains the letters "fmt "; SetStr4( SUB_CHUNK1_ID_IDX, "fmt " ); // Subchunk size is a 32 bit integer that stores the number of // bytes following this number for this sub chunk. (16 for PCM) SetInt16( SUB_CHUNK1_SIZE_IDX, 16 ); // AudioFormat is PCM - indicated by the value 1 SetInt16( AUDIO_FORMAT_IDX, 1 ); // Set num channels as a 16 bit value; SetInt16( NUM_CHANNELS_IDX, _numChannels ); // Sample rate SetInt32( SAMPLE_RATE_IDX, _sampleRate ); // Byte rate SetInt32( BYTE_RATE_IDX, _sampleRate * _bytesPerSample * _numChannels ); // Block alignment i.e. size of a frame of audio data. SetInt16( BLOCK_ALIGN_IDX, _numChannels * _bytesPerSample ); // Bits per sample SetInt16( BITS_PER_SAMPLE, _bitsPerSample ); // SUB_CHUNK2_ID_IDX - The letters "data". SetStr4( SUB_CHUNK2_ID_IDX, "data" ); // SUB_CHUNK2_ID_SIZE_ID - Size, in bytes, of the audio data. SetInt32( SUB_CHUNK2_ID_SIZE_IDX, GetAudioDataSizeInBytes() ); }
void CMdbPara::SetNumber(register uint32 nFieldNo, register void* pVal, register uint32 nOperator) { switch(GetType(nFieldNo)) { case MDB_INT8_FIELD: SetInt8(nFieldNo, *(int8*)pVal, nOperator); break; case MDB_INT16_FIELD: SetInt16(nFieldNo, *(int16*)pVal, nOperator); break; case MDB_INT32_FIELD: SetInt32(nFieldNo, *(int32*)pVal, nOperator); break; case MDB_INT64_FIELD: SetInt64(nFieldNo, *(int64*)pVal, nOperator); break; case MDB_UINT8_FIELD: SetUInt8(nFieldNo, *(uint8*)pVal, nOperator); break; case MDB_UINT16_FIELD: SetUInt16(nFieldNo, *(uint16*)pVal, nOperator); break; case MDB_UINT32_FIELD: SetUInt32(nFieldNo, *(uint32*)pVal, nOperator); break; case MDB_UINT64_FIELD: SetUInt64(nFieldNo, *(uint64*)pVal, nOperator); break; case MDB_FLOAT_FIELD: SetFloat(nFieldNo, *(float*)pVal, nOperator); break; case MDB_DOUBLE_FIELD: SetDouble(nFieldNo, *(double*)pVal, nOperator); break; case MDB_DATE_FIELD: SetDate(nFieldNo, *(CDate*)pVal, nOperator); break; case MDB_TIME_FIELD: SetTime(nFieldNo, *(CTime*)pVal, nOperator); break; case MDB_DATETIME_FIELD: SetDateTime(nFieldNo, *(CDateTime*)pVal, nOperator); break; } }
//============================================================================ // NNumber::SetValue : Set the value. //---------------------------------------------------------------------------- bool NNumber::SetValue(const NVariant &theValue) { uint8_t valueUInt8; uint16_t valueUInt16; uint32_t valueUInt32; uint64_t valueUInt64; int8_t valueSInt8; int16_t valueSInt16; int32_t valueSInt32; int64_t valueSInt64; float32_t valueFloat32; float64_t valueFloat64; int valueInt; long valueLong; NString valueString; // Set the value // // NVariant treats some unsized types as numeric, to support literal constants. if (theValue.GetValue(*this)) ; // Assigned to this else if (theValue.GetValue(valueUInt8)) SetUInt8(valueUInt8); else if (theValue.GetValue(valueUInt16)) SetUInt16(valueUInt16); else if (theValue.GetValue(valueUInt32)) SetUInt32(valueUInt32); else if (theValue.GetValue(valueUInt64)) SetUInt64(valueUInt64); else if (theValue.GetValue(valueSInt8)) SetInt8(valueSInt8); else if (theValue.GetValue(valueSInt16)) SetInt16(valueSInt16); else if (theValue.GetValue(valueSInt32)) SetInt32(valueSInt32); else if (theValue.GetValue(valueSInt64)) SetInt64(valueSInt64); else if (theValue.GetValue(valueFloat32)) SetFloat32(valueFloat32); else if (theValue.GetValue(valueFloat64)) SetFloat64(valueFloat64); else if (theValue.GetValue(valueInt)) SetInt64(valueInt); else if (theValue.GetValue(valueLong)) SetInt64(valueLong); else if (theValue.GetValue(valueString)) return(SetValue(valueString)); else return(false); return(true); }