这篇教程C++ swab函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中swab函数的典型用法代码示例。如果您正苦于以下问题:C++ swab函数的具体用法?C++ swab怎么用?C++ swab使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了swab函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: a52_fillbuffint a52_fillbuff(sh_audio_t *sh_audio){int length=0;int flags=0;int sample_rate=0;int bit_rate=0; sh_audio->a_in_buffer_len=0; /* sync frame:*/while(1){ while(sh_audio->a_in_buffer_len<8){ int c=demux_getc(sh_audio->ds); if(c<0) return -1; /* EOF*/ sh_audio->a_in_buffer[sh_audio->a_in_buffer_len++]=c; } if(sh_audio->format!=0x2000) swab(sh_audio->a_in_buffer,sh_audio->a_in_buffer,8); length = a52_syncinfo (sh_audio->a_in_buffer, &flags, &sample_rate, &bit_rate); if(length>=7 && length<=3840) break; /* we're done.*/ /* bad file => resync*/ if(sh_audio->format!=0x2000) swab(sh_audio->a_in_buffer,sh_audio->a_in_buffer,8); memmove(sh_audio->a_in_buffer,sh_audio->a_in_buffer+1,7); --sh_audio->a_in_buffer_len;} mp_msg(MSGT_DECAUDIO,MSGL_DBG2,"a52: len=%d flags=0x%X %d Hz %d bit/s/n",length,flags,sample_rate,bit_rate); sh_audio->samplerate=sample_rate; sh_audio->i_bps=bit_rate/8; sh_audio->samplesize=sh_audio->sample_format==AF_FORMAT_FLOAT_NE ? 4 : 2; demux_read_data(sh_audio->ds,sh_audio->a_in_buffer+8,length-8); if(sh_audio->format!=0x2000) swab(sh_audio->a_in_buffer+8,sh_audio->a_in_buffer+8,length-8); if(crc16_block(sh_audio->a_in_buffer+2,length-2)!=0) mp_msg(MSGT_DECAUDIO,MSGL_STATUS,"a52: CRC check failed! /n"); return length;}
开发者ID:OpenSageTV,项目名称:mplayer-sage9orig,代码行数:35,
示例2: SDC/* подпр.обр.пс.опер.DC */int SDC(){ /*рабочая переменная */ char *RAB; /*занулим два старших байта RX.OP_RX */ RX.OP_RX.OP = 0; RX.OP_RX.R1X2 = 0; /* если операнд начинается с комбинации F' */ if (memcmp(TEK_ISX_KARTA.STRUCT_BUFCARD.OPERAND,"F'", 2) == 0) { /* в перем. c указат.RAB выбираем первую лексему операнда текущей карты исх.текста АССЕМБЛЕРА */ RAB=strtok((char*)TEK_ISX_KARTA.STRUCT_BUFCARD.OPERAND + 2, "'"); /*перевод ASCII-> int */ RX.OP_RX.B2D2 = atoi ( RAB ); /* приведение к соглашениям ЕС ЭВМ */ RAB = (char *) &RX.OP_RX.B2D2; swab ( RAB , RAB , 2 ); } else { /* иначе сообщение об ошибке */ return (1); } /* формирование TXT-карты */ STXT (4); return (0); /*успешн.завершение подпр.*/}
开发者ID:sanek23994,项目名称:Rastorguev,代码行数:33,
示例3: callbackstatic void callback(SLBufferQueueItf bufq, void *param){ assert(NULL == param); if (!eof) { short *buffer = &buffers[framesPerBuffer * sfinfo.channels * which]; sf_count_t count; count = sf_readf_short(sndfile, buffer, (sf_count_t) framesPerBuffer); if (0 >= count) { eof = SL_BOOLEAN_TRUE; } else { SLuint32 nbytes = count * sfinfo.channels * sizeof(short); if (byteOrder != nativeByteOrder) { swab(buffer, buffer, nbytes); } if (bitsPerSample == 8) { squeeze(buffer, (unsigned char *) buffer, nbytes); nbytes /= 2; } SLresult result = (*bufq)->Enqueue(bufq, buffer, nbytes); assert(SL_RESULT_SUCCESS == result); if (++which >= numBuffers) which = 0; } }}
开发者ID:JokeLook,项目名称:framework,代码行数:25,
示例4: swabuint16_t Sound::swapends(uint16_t u){ if (!am_big_endian()) return u; uint16_t v; swab(&u, &v, 2); return v;}
开发者ID:amitahire,项目名称:z-fight-club,代码行数:7,
示例5: memcpyintwav_ac3wav_demuxer_c::decode_buffer(int len) { if (len < 8) return -1; if (m_swap_bytes) { memcpy( m_buf[m_cur_buf ^ 1]->get_buffer(), m_buf[m_cur_buf]->get_buffer(), 8); swab((char *)m_buf[m_cur_buf]->get_buffer() + 8, (char *)m_buf[m_cur_buf ^ 1]->get_buffer() + 8, len - 8); m_cur_buf ^= 1; } unsigned char *base = m_buf[m_cur_buf]->get_buffer(); if ((get_uint16_le(&base[0]) != AC3WAV_SYNC_WORD1) || (get_uint16_le(&base[2]) != AC3WAV_SYNC_WORD2) || (0x01 != base[4])) return -1; int payload_len = get_uint16_le(&base[6]) / 8; if ((payload_len + 8) > len) return -1; if (!m_ac3header.decode_header(&base[8], payload_len)) return -1; return payload_len;}
开发者ID:VRDate,项目名称:mkvtoolnix,代码行数:26,
示例6: save_pgm_uint16int save_pgm_uint16(const char* path, const uint16_t* image, size_t w, size_t stride, size_t h){ FILE* f = fopen(path, "wb"); if (f == NULL) { perror("open"); return -1; } fprintf(f, "P5/n"); fprintf(f, "%lu %lu/n", w, h); fprintf(f, "65535/n"); uint16_t* tmp;#if __BYTE_ORDER == __LITTLE_ENDIAN tmp = (uint16_t*)malloc(w*2);#endif for( size_t y = 0; y < h; ++y) {#if __BYTE_ORDER == __LITTLE_ENDIAN swab(image+stride*y, tmp, w*2);#else tmp = image+stride*y;#endif fwrite(tmp, w*2, 1, f); }#if __BYTE_ORDER == __LITTLE_ENDIAN free(tmp);#endif fclose(f); return 0;}
开发者ID:1ee7,项目名称:cuav,代码行数:31,
示例7: callbackstatic void callback(SLBufferQueueItf bufq, void *param){ assert(NULL == param); if (!eof) { void *buffer = (char *)buffers + framesPerBuffer * sfframesize * which; ssize_t count = pipeReader->read(buffer, framesPerBuffer, (int64_t) -1); // on underrun from pipe, substitute silence if (0 >= count) { memset(buffer, 0, framesPerBuffer * sfframesize); count = framesPerBuffer; ++underruns; } if (count > 0) { SLuint32 nbytes = count * sfframesize; if (byteOrder != nativeByteOrder) { swab(buffer, buffer, nbytes); } if (transferFormat == AUDIO_FORMAT_PCM_8_BIT) { squeeze((short *) buffer, (unsigned char *) buffer, nbytes); nbytes /= 2; } else if (transferFormat == AUDIO_FORMAT_PCM_24_BIT_PACKED) { squeeze24((unsigned char *) buffer, (unsigned char *) buffer, nbytes); nbytes = nbytes * 3 / 4; } SLresult result = (*bufq)->Enqueue(bufq, buffer, nbytes); assert(SL_RESULT_SUCCESS == result); if (++which >= numBuffers) which = 0; } }}
开发者ID:DARKPOP,项目名称:frameworks_wilhelm,代码行数:31,
示例8: neogeo_initstatic int neogeo_init(void){ SceUID fd; char path[MAX_PATH]; sprintf(path, "%smemcard/%s.bin", launchDir, game_name); if ((fd = sceIoOpen(path, PSP_O_RDONLY, 0777)) >= 0) { sceIoRead(fd, neogeo_memcard, 0x800); sceIoClose(fd); } sprintf(path, "%snvram/%s.nv", launchDir, game_name); if ((fd = sceIoOpen(path, PSP_O_RDONLY, 0777)) >= 0) { sceIoRead(fd, neogeo_sram16, 0x2000); sceIoClose(fd); swab(neogeo_sram16, neogeo_sram16, 0x2000); } neogeo_driver_init(); neogeo_video_init(); msg_printf(TEXT(DONE2)); return 1;}
开发者ID:aliaspider,项目名称:NJEMU-libretro,代码行数:29,
示例9: argumentsQStringList AudioCdRecord::arguments() const{ QStringList args;/*! --------------------- Normal Arguments --------------------!*/ args << "-v"; if( publicRead() ) args << "-r"; if( dummy() ) args << "-dummy"; if( force() ) args << "-force"; if( sessionAtOnce() ) args << "-sao"; if( trackAtOnce() ) args << "-tao"; if( swab() ) args << "-swab"; if( multiSession() ) args << "-multi"; if( pad() ) args << "-pad"; if( pad() && padSize() > 0 ) args << QString::number( padSize() ); if( eject() ) args << "-eject"; if( ringBuffer() > 0 ) args << "fs=" + QString::number( ringBuffer() ); if( minimumBuffer() > 0 ) args << "minbuf=" + QString::number( minimumBuffer() ); if( speed() > 0 ) args << "speed=" + QString::number( speed() ); args << "dev=" + currentDevice().toQString(); args << "-audio"; args << files(); /*! -----------------------------------------------------------!*/ return args;}
开发者ID:realbardia,项目名称:silicon,代码行数:29,
示例10: neogeo_exitvoid neogeo_exit(void){ SceUID fd; char path[MAX_PATH]; msg_printf(TEXT(PLEASE_WAIT2)); sprintf(path, "%smemcard/%s.bin", launchDir, game_name); if ((fd = sceIoOpen(path, PSP_O_WRONLY|PSP_O_CREAT, 0777)) >= 0) { sceIoWrite(fd, neogeo_memcard, 0x800); sceIoClose(fd); } sprintf(path, "%snvram/%s.nv", launchDir, game_name); if ((fd = sceIoOpen(path, PSP_O_WRONLY|PSP_O_CREAT, 0777)) >= 0) { swab(neogeo_sram16, neogeo_sram16, 0x2000); sceIoWrite(fd, neogeo_sram16, 0x2000); sceIoClose(fd); } msg_printf(TEXT(DONE2)); sound_exit(); memory_shutdown();}
开发者ID:aliaspider,项目名称:NJEMU-libretro,代码行数:26,
示例11: write_datastatic void write_data( filter_t *p_filter, const void *p_buf, size_t i_size, bool b_input_big_endian ){ filter_sys_t *p_sys = p_filter->p_sys; assert( p_sys->p_out_buf != NULL ); bool b_output_big_endian = p_filter->fmt_out.audio.i_format == VLC_CODEC_SPDIFB; uint8_t *p_out = &p_sys->p_out_buf->p_buffer[p_sys->i_out_offset]; const uint8_t *p_in = p_buf; assert( p_sys->p_out_buf->i_buffer - p_sys->i_out_offset >= i_size ); if( b_input_big_endian != b_output_big_endian ) swab( p_in, p_out, i_size & ~1 ); else memcpy( p_out, p_in, i_size & ~1 ); p_sys->i_out_offset += ( i_size & ~1 ); if( i_size & 1 ) { assert( p_sys->p_out_buf->i_buffer - p_sys->i_out_offset >= 2 ); p_out += ( i_size & ~1 ); set_16( p_filter, p_out, p_in[i_size - 1] << 8 ); p_sys->i_out_offset += 2; }}
开发者ID:IAPark,项目名称:vlc,代码行数:27,
示例12: cbf_swabint cbf_swab(const void * src, void * dst, size_t len) {#ifndef USE_SWAB unsigned char *p1; unsigned char *p2;#endif if (len&1) return CBF_ARGUMENT;#ifndef USE_SWAB p1 = (unsigned char *)src; p2 = (unsigned char *)dst; while (len) { p2[1] = p1[0]; p2[0] = p1[1]; p1+=2; p2+=2; len -=2; }#else swab(src,dst,len);#endif return 0;}
开发者ID:emblsaxs,项目名称:saxsview,代码行数:27,
示例13: _save_pgm/* low level save routine */static int _save_pgm(const char *filename, unsigned w, unsigned h, unsigned stride, const char *data){ int fd = open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0644); int ret; if (fd == -1) { return -1; } dprintf(fd,"P5/n%u %u/n%u/n", w, h, stride==w?255:65535); if (__BYTE_ORDER == __LITTLE_ENDIAN && stride == w*2) { char *data2 = malloc(w*h*2); swab(data, data2, w*h*2); ret = write(fd, data2, h*stride); free(data2); } else { ret = write(fd, data, h*stride); } if (ret != h*stride) { close(fd); return -1; } close(fd); return 0;}
开发者ID:jaxiano,项目名称:cuav,代码行数:27,
示例14: rom_loadint rom_load(struct rom_t *rom, UINT8 *mem, int idx, int max){ int offset, length;_continue: offset = rom[idx].offset; if (rom[idx].skip == 0) { file_read(&mem[offset], rom[idx].length); if (rom[idx].type == ROM_WORDSWAP) swab(&mem[offset], &mem[offset], rom[idx].length); } else { int c; int skip = rom[idx].skip + rom[idx].group; length = 0; if (rom[idx].group == 1) { if (rom[idx].type == ROM_WORDSWAP) offset ^= 1; while (length < rom[idx].length) { if ((c = file_getc()) == EOF) break; mem[offset] = c; offset += skip; length++; } } else { while (length < rom[idx].length) { if ((c = file_getc()) == EOF) break; mem[offset + 0] = c; if ((c = file_getc()) == EOF) break; mem[offset + 1] = c; offset += skip; length += 2; } } } if (++idx != max) { if (rom[idx].type == ROM_CONTINUE) { goto _continue; } } return idx;}
开发者ID:AMSMM,项目名称:NJEMU,代码行数:58,
示例15: readehdrstatic intreadehdr(Boot *b){ int i; /* bitswap the header according to the DATA format */ if(ehdr.ident[CLASS] != ELFCLASS32) { print("bad ELF class - not 32 bit/n"); return 0; } if(ehdr.ident[DATA] == ELFDATA2LSB) { swab = leswab; swal = leswal; } else if(ehdr.ident[DATA] == ELFDATA2MSB) { swab = beswab; swal = beswal; } else { print("bad ELF encoding - not big or little endian/n"); return 0; } memmove(&rehdr, &ehdr, sizeof(Ehdr)); ehdr.type = swab(ehdr.type); ehdr.machine = swab(ehdr.machine); ehdr.version = swal(ehdr.version); ehdr.elfentry = swal(ehdr.elfentry); ehdr.phoff = swal(ehdr.phoff); ehdr.shoff = swal(ehdr.shoff); ehdr.flags = swal(ehdr.flags); ehdr.ehsize = swab(ehdr.ehsize); ehdr.phentsize = swab(ehdr.phentsize); ehdr.phnum = swab(ehdr.phnum); ehdr.shentsize = swab(ehdr.shentsize); ehdr.shnum = swab(ehdr.shnum); ehdr.shstrndx = swab(ehdr.shstrndx); if(ehdr.type != EXEC || ehdr.version != CURRENT) return 0; if(ehdr.phentsize != sizeof(Phdr)) return 0; if(debug) print("readehdr OK entry 0x%lux/n", ehdr.elfentry); curoff = sizeof(Ehdr); i = ehdr.phoff+ehdr.phentsize*ehdr.phnum - curoff; b->state = READPHDR; b->bp = (char*)malloc(i); b->wp = b->bp; b->ep = b->wp + i; phdr = (Phdr*)(b->bp + ehdr.phoff-sizeof(Ehdr)); if(debug) print("phdr..."); return 1;}
开发者ID:99years,项目名称:plan9,代码行数:55,
示例16: write_bed_header/* Write 3 byte bed header */static int write_bed_header(FILE *bed){ short m; size_t count; swab(&magic_no, &m, 2); count = fwrite(&m, sizeof(short), 1, bed); count += fwrite(&mode, sizeof(char), 1, bed); return count;}
开发者ID:nshrine,项目名称:code,代码行数:10,
示例17: swabintwav_ac3acm_demuxer_c::decode_buffer(int len) { if ((2 < len) && m_swap_bytes) { swab((char *)m_buf[m_cur_buf]->get_buffer(), (char *)m_buf[m_cur_buf ^ 1]->get_buffer(), len); m_cur_buf ^= 1; } return 0;}
开发者ID:VRDate,项目名称:mkvtoolnix,代码行数:9,
示例18: ipx_change_default_socketint ipx_change_default_socket( ushort socket_number ){ int i; WORD new_ipx_socket; dpmi_real_regs rregs; if ( !ipx_installed ) return -3; // Open a new socket memset(&rregs,0,sizeof(dpmi_real_regs)); swab( (char *)&socket_number,(char *)&new_ipx_socket, 2 ); rregs.edx = new_ipx_socket; rregs.eax = ipx_socket_life; rregs.ebx = 0; // Open socket dpmi_real_int386x( 0x7A, &rregs ); new_ipx_socket = rregs.edx & 0xFFFF; if ( rregs.eax & 0xFF ) { //printf( (1, "IPX error opening channel %d/n", socket_number-IPX_DEFAULT_SOCKET )); return -2; } for (i=1; i<ipx_num_packets; i++ ) { ipx_cancel_listen_for_packet(&packets[i].ecb); } // Close existing socket... memset(&rregs,0,sizeof(dpmi_real_regs)); rregs.edx = ipx_socket; rregs.ebx = 1; // Close socket dpmi_real_int386x( 0x7A, &rregs ); ipx_socket = new_ipx_socket; // Repost all listen requests on the new socket... for (i=1; i<ipx_num_packets; i++ ) { packets[i].ecb.in_use = 0; packets[i].ecb.socket_id = ipx_socket; ipx_listen_for_packet(&packets[i].ecb); } packets[0].ecb.socket_id = ipx_socket; packets[0].ipx.destination.socket_id = ipx_socket; ipx_packetnum = 0; // init packet buffers. for (i=0; i<MAX_PACKETS; i++ ) { packet_buffers[i].packetnum = -1; packet_free_list[i] = i; } num_packets = 0; largest_packet_index = 0; return 0;}
开发者ID:devint1,项目名称:descent-win,代码行数:56,
示例19: printf/*++Function: _swabSwaps bytes.Return ValueNoneParameterssrc Data to be copied and swappeddest Storage location for swapped datan Number of bytes to be copied and swappedRemarksThe _swab function copies n bytes from src, swaps each pair ofadjacent bytes, and stores the result at dest. The integer n should bean even number to allow for swapping. _swab is typically used toprepare binary data for transfer to a machine that uses a differentbyte order.Examplechar from[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";char to[] = "..........................";printf("Before:/n%s/n%s/n/n", from, to);_swab(from, to, strlen(from));printf("After:/n%s/n%s/n/n", from, to);Before:ABCDEFGHIJKLMNOPQRSTUVWXYZ..........................After:ABCDEFGHIJKLMNOPQRSTUVWXYZBADCFEHGJILKNMPORQTSVUXWZY--*/void__cdecl_swab(char *src, char *dest, int n){ PERF_ENTRY(_swab); ENTRY("_swab (src=%p (%s), dest=%p (%s), n=%d)/n", src?src:"NULL", src?src:"NULL", dest?dest:"NULL", dest?dest:"NULL", n); swab(src, dest, n); LOGEXIT("_swab returning/n"); PERF_EXIT(_swab);}
开发者ID:0-wiz-0,项目名称:coreclr,代码行数:52,
示例20: copyshort/************************************************************* * copyshort *------------------------------------------------------------ * copy a 2-byte int, making sure to use the intended byte * order for the destination, regardless of what the * native byte order is on the current machine */void copyshort( short int val, char *dest, char *intended ){ if ( strcmp( nativorder, intended )) swab((char *) &val, short_order.ch, 2 ); else short_order.i2 = val; *dest++ = short_order.ch[0]; *dest = short_order.ch[1];}
开发者ID:d-unknown-processor,项目名称:speechAD,代码行数:17,
示例21: get_data_type/***************************************************************************** * DoWork: convert a buffer *****************************************************************************/static block_t *DoWork( filter_t * p_filter, block_t *p_in_buf ){ size_t i_length = p_in_buf->i_buffer; uint8_t * p_in = p_in_buf->p_buffer; block_t *p_out_buf = NULL; uint16_t i_data_type = get_data_type( p_filter, p_in_buf ); if( i_data_type == 0 || ( i_length + 8 ) > AOUT_SPDIF_SIZE ) goto out; size_t i_out_length = p_in_buf->i_nb_samples * 4; p_out_buf = block_Alloc( i_out_length ); if( !p_out_buf ) goto out; uint8_t *p_out = p_out_buf->p_buffer; /* Copy the S/PDIF headers. */ void (*write16)(void *, uint16_t) = ( p_filter->fmt_out.audio.i_format == VLC_CODEC_SPDIFB ) ? SetWBE : SetWLE; write16( &p_out[0], 0xf872 ); /* syncword 1 */ write16( &p_out[2], 0x4e1f ); /* syncword 2 */ write16( &p_out[4], i_data_type ); /* data type */ write16( &p_out[6], i_length * 8 ); /* length in bits */ bool b_input_big_endian = is_big_endian( p_filter, p_in_buf ); bool b_output_big_endian = p_filter->fmt_out.audio.i_format == VLC_CODEC_SPDIFB; if( b_input_big_endian != b_output_big_endian ) { swab( p_in, p_out + 8, i_length & ~1 ); /* If i_length is odd, we have to adjust swapping a bit... */ if( i_length & 1 && ( i_length + 9 ) <= i_out_length ) { p_out[8 + i_length - 1] = 0; p_out[8 + i_length] = p_in[i_length-1]; i_length++; } } else memcpy( p_out + 8, p_in, i_length ); if( 8 + i_length < i_out_length ) /* padding */ memset( p_out + 8 + i_length, 0, i_out_length - i_length - 8 ); p_out_buf->i_dts = p_in_buf->i_dts; p_out_buf->i_pts = p_in_buf->i_pts; p_out_buf->i_nb_samples = p_in_buf->i_nb_samples; p_out_buf->i_buffer = i_out_length;out: block_Release( p_in_buf ); return p_out_buf;}
开发者ID:BossKing,项目名称:vlc,代码行数:58,
示例22: SwitchVectorEndianinlinevoid SwitchVectorEndian(std::vector<unsigned short>& data){ BOOST_STATIC_ASSERT(sizeof(unsigned short)==2); SwabType* p_data=reinterpret_cast <SwabType*>(&data[0]); swab(p_data, p_data, static_cast<int>(data.size()*2));}
开发者ID:PatrickRABEL,项目名称:dicomlib,代码行数:11,
示例23: devreadintdevread(Device *d, Off b, void *c){ int e; for (;;) switch(d->type) { case Devcw: return cwread(d, b, c); case Devjuke: d = d->j.m; break; case Devro: return roread(d, b, c); case Devwren: return wrenread(d, b, c); case Devworm: case Devlworm: return wormread(d, b, c); case Devfworm: return fwormread(d, b, c); case Devmcat: return mcatread(d, b, c); case Devmlev: return mlevread(d, b, c); case Devmirr: return mirrread(d, b, c); case Devpart: return partread(d, b, c); case Devswab: e = devread(d->swab.d, b, c); if(e == 0) swab(c, 0); return e; case Devnone: print("read from device none(%lld)/n", (Wideoff)b); return 1; default: panic("illegal device in devread: %Z %lld", d, (Wideoff)b); return 1; }}
开发者ID:npe9,项目名称:harvey,代码行数:54,
示例24: mainvoid main(void) { char *source = "AJSM'A S0110T pi!s"; char target[64]; memset(target, NULL, sizeof(target)); swab(source, target, strlen(source)); printf("Source: %s Target %s/n", source, target); }
开发者ID:moyuanming,项目名称:Train,代码行数:11,
示例25: BdExtractstatic void BdExtract( block_t *p_aout_buffer, block_t *p_block, unsigned i_frame_length, unsigned i_channels, unsigned i_channels_padding, unsigned i_bits ){ if( i_channels_padding > 0 ) { uint8_t *p_src = p_block->p_buffer; uint8_t *p_dst = p_aout_buffer->p_buffer; int dst_inc = ((i_bits == 16) ? 2 : 4) * i_channels; while( i_frame_length > 0 ) {#ifdef WORDS_BIGENDIAN memcpy( p_dst, p_src, i_channels * i_bits / 8 );#else if (i_bits == 16) { swab( (char *)p_dst, (char *)p_src, (i_channels + i_channels_padding) * i_bits / 8 ); // sunqueen modify } else { p_dst[0] = 0; p_dst[1] = p_src[2]; p_dst[2] = p_src[1]; p_dst[3] = p_src[0]; }#endif p_src += (i_channels + i_channels_padding) * i_bits / 8; p_dst += dst_inc; i_frame_length--; } } else {#ifdef WORDS_BIGENDIAN memcpy( p_aout_buffer->p_buffer, p_block->p_buffer, p_block->i_buffer );#else swab( (char *)p_block->p_buffer, (char *)p_aout_buffer->p_buffer, p_block->i_buffer ); // sunqueen modify#endif }}
开发者ID:12307,项目名称:VLC-for-VS2010,代码行数:39,
示例26: neogeo_exitstatic void neogeo_exit(void){ SceUID fd; char path[MAX_PATH]; video_set_mode(32); video_clear_screen(); ui_popup_reset(); video_clear_screen(); msg_screen_init(WP_LOGO, ICON_SYSTEM, TEXT(EXIT_EMULATION2)); msg_printf(TEXT(PLEASE_WAIT2));#ifdef ADHOC if (!adhoc_enable)#endif { sprintf(path, "%smemcard/%s.bin", launchDir, game_name); if ((fd = sceIoOpen(path, PSP_O_WRONLY|PSP_O_CREAT, 0777)) >= 0) { sceIoWrite(fd, neogeo_memcard, 0x800); sceIoClose(fd); } sprintf(path, "%snvram/%s.nv", launchDir, game_name); if ((fd = sceIoOpen(path, PSP_O_WRONLY|PSP_O_CREAT, 0777)) >= 0) { swab(neogeo_sram16, neogeo_sram16, 0x2000); sceIoWrite(fd, neogeo_sram16, 0x2000); sceIoClose(fd); }#ifdef COMMAND_LIST free_commandlist();#endif if (neogeo_save_sound_flag) option_sound_enable = 1; save_gamecfg(game_name); } msg_printf(TEXT(DONE2));#ifdef ADHOC if (adhoc_enable) adhocTerm();#endif show_exit_screen();}
开发者ID:AMSMM,项目名称:NJEMU,代码行数:51,
示例27: data_load_binary/* Load a binary image, return # bytes read.*/int data_load_binary(const char *type, const char *path, const char *filename, u8 * loadat, int swap, int fileoffs, int imagesize, int maxsize){ OSRef ref; OSSize size; OSError err; OSSpec spec; size = data_find_binary(path, filename, &spec); if (!size) { if (*filename) { command_logger(_L |LOG_USER|LOG_ERROR, _("Cannot find '%s' in path:/n'%s'/n"), filename, path); } return 0; } logger(_L|L_0, _("Loading %s image %s... "), type, OS_SpecToString1(&spec)); if (imagesize) size = imagesize; else if (size - fileoffs > maxsize) { command_logger(_L | LOG_WARN | LOG_USER, _("%s too long, only %d bytes of %d read... "), OS_SpecToString1(&spec), maxsize, size); size = maxsize - fileoffs; } if ((err = OS_Open(&spec, OSReadOnly, &ref)) != OS_NOERR) { OSerror(err, "/n"); return 0; } if ((err = OS_Seek(ref, OSSeekAbs, fileoffs)) != OS_NOERR || (err = OS_Read(ref, loadat, &size)) != OS_NOERR) { OSerror(err, _("could not read/n")); return 0; } if (swap) { logger(_L, _("swapping bytes... ")); swab((const void *) loadat, (void *) loadat, size); } logger(_L| L_0, _("done/n")); OS_Close(ref); return size;}
开发者ID:eswartz,项目名称:emul,代码行数:54,
示例28: SSTART/* подпр.обр.пс.опер.START */int SSTART(){ /* набор рабочих переменных подпрограммы */ char *PTR; char *METKA; char *METKA1; int J; int RAB; /* в перем. c указат.METKA1 выбираем первую лексему операнда текущей карты исх.текста АССЕМБЛЕРА */ METKA1 = strtok((char*) TEK_ISX_KARTA.STRUCT_BUFCARD.METKA, " "); for ( J=0; J<=ITSYM; J++ ) { /* все метки исх.текста в табл. T_SYM сравниваем со знач.перем. *METKA1 */ METKA = strtok ((char*) T_SYM[J].IMSYM , " "); /* и при совпадении: */ if( !strcmp ( METKA , METKA1 ) ) { /* берем разность сч.адр. знач.этой метки, образуя длину программы в соглашениях ЕС ЭБМ, и записыв.ее в ESD-карту побайтно */ RAB = CHADR - T_SYM[J].ZNSYM; PTR = (char *)&RAB; swab ( PTR , PTR , 2 ); ESD.STR_ESD.DLPRG [0] = 0; ESD.STR_ESD.DLPRG [1] = *PTR; ESD.STR_ESD.DLPRG [2] = *(PTR + 1); /* устанавл.CHADR, равным операнду операт.START исходного текста */ CHADR = T_SYM[J].ZNSYM; /* формирование поля ADPRG ESD-карты в формате двоичного целого в соглашениях ЕС ЭВМ */ PTR = (char *)&CHADR; ESD.STR_ESD.ADPRG[2] = *PTR; ESD.STR_ESD.ADPRG[1] = *(PTR+1); ESD.STR_ESD.ADPRG[0] = '/x00'; /* формирование имени программы и идентификационнго поля ESD - карты */ memcpy(ESD.STR_ESD.IMPR, METKA, strlen(METKA)); memcpy(ESD.STR_ESD.POLE11, METKA, strlen(METKA)); /* запись об'ектной карты в массив об'ектных карт */ memcpy(OBJTEXT[ITCARD], ESD.BUF_ESD, 80); ITCARD += 1; /*коррекц.инд-са своб.к-ты*/ return (0); /*успешное заверш.подпрогр*/ } } return (2); /*ошибочное заверш.прогр. */}
开发者ID:sanek23994,项目名称:Rastorguev,代码行数:50,
示例29: swabintdts_reader_c::decode_buffer(size_t length) { if (m_swap_bytes) { swab(reinterpret_cast<char *>(m_buf[m_cur_buf]), reinterpret_cast<char *>(m_buf[m_cur_buf ^ 1]), length); m_cur_buf ^= 1; } if (m_dts14_to_16) { mtx::dts::convert_14_to_16_bits(m_buf[m_cur_buf], length / 2, m_buf[m_cur_buf ^ 1]); m_cur_buf ^= 1; length = length * 7 / 8; } return length;}
开发者ID:nexus148,项目名称:mkvtoolnix,代码行数:15,
注:本文中的swab函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ swab32函数代码示例 C++ sw_uk_exec函数代码示例 |