Example #1
0
void swap_ape_header(APE_HEADER *header)
{
    header->nCompressionLevel = swap_int16(header->nCompressionLevel);
    header->nFormatFlags = swap_int16(header->nFormatFlags);

    header->nBlocksPerFrame = swap_int32(header->nBlocksPerFrame);
    header->nFinalFrameBlocks = swap_int32(header->nFinalFrameBlocks);
    header->nTotalFrames = swap_int32(header->nTotalFrames);

    header->nBitsPerSample = swap_int16(header->nBitsPerSample);
    header->nChannels = swap_int16(header->nChannels);
    header->nSampleRate = swap_int32(header->nSampleRate);
}
Example #2
0
void swap_ape_descriptor(APE_DESCRIPTOR *des)
{
    des->nVersion = swap_int16(des->nVersion);

    des->nDescriptorBytes = swap_int32(des->nDescriptorBytes);
    des->nHeaderBytes = swap_int32(des->nHeaderBytes);
    des->nSeekTableBytes = swap_int32(des->nSeekTableBytes);
    des->nHeaderDataBytes = swap_int32(des->nHeaderDataBytes);
    des->nAPEFrameDataBytes = swap_int32(des->nAPEFrameDataBytes);
    des->nAPEFrameDataBytesHigh = swap_int32(des->nAPEFrameDataBytesHigh);
    des->nTerminatingDataBytes = swap_int32(des->nTerminatingDataBytes);
}
Example #3
0
void DataManager::GetSurface( int ztime)
{
    Surface sf;
    sf.z = ztime;
    long trace_size = (long)(240L+segyHead->DataType*segyHead->hns);
    int datatype = segyHead->DataType;
    long fp = 0L;
    for( int i = 0; i < segyHead->TotalTraces; i += 10 )
    {
        fp = ( 3600L + (long)i*trace_size);
        fseek(filesegy,fp,SEEK_SET);
        fread((void*)(&sf.x+8L),sizeof(int),1,filesegy);
        sf.x = swap_int32(sf.x);

        fseek(filesegy,fp+20L,SEEK_SET);
        fread((void*)(&sf.y),sizeof(int),1,filesegy);
        sf.y = swap_int32(sf.y);

        fseek(filesegy,fp+datatype*sf.z+240L,SEEK_SET);
        if( segyHead->format == 1 )
        {
            fread((void*)(&sf.value),sizeof(float),1,filesegy);
            sf.value = ibm2float(sf.value);
        }
        else if( segyHead->format == 2)
        {
            int temp = 0;
            fread((void*)(&temp),sizeof(int),1,filesegy);
            sf.value = swap_int32(temp);
        }
        else if( segyHead->format == 3 )
        {
            short temp = 0;
            fread((void*)(&temp),sizeof(short),1,filesegy);
            sf.value = swap_int16(temp);
        }
        else if( segyHead->format == 5 )
        {
            fread((void*)(&sf.value),sizeof(float),1,filesegy);
        }
        else if( segyHead->format == 8 )
        {
            char temp = 0;
            fread((void*)(&temp),sizeof(char),1,filesegy);
            sf.value = (float)temp;
        }
        surface.push_back(sf);
    }
    qDebug()<<"Read surface have done!"<<surface.size();
}