这篇教程C++ DupStr函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中DupStr函数的典型用法代码示例。如果您正苦于以下问题:C++ DupStr函数的具体用法?C++ DupStr怎么用?C++ DupStr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了DupStr函数的22个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: RepInitEvstatic void RepInitEv( event_record *ev ){ DIPHDL( cue, ch ); if( ev->cue == NULL ) { if( DeAliasAddrCue( NO_MOD, ev->ip, ch ) != SR_NONE ) { ev->cue = CopySourceLine( ch ); } if( ev->cue == NULL ) { UnAsm( ev->ip, TxtBuff, TXT_LEN ); ev->cue = DupStr( TxtBuff ); } } if( ev->addr_string == NULL ) { ev->addr_string = DupStr( GetEventAddress( ev ) ); }}
开发者ID:Azarien,项目名称:open-watcom-v2,代码行数:16,
示例2: BreakWritebool BreakWrite( address addr, mad_type_handle th, const char *comment ){ brkp *bp; mad_type_info mti; bool ok_to_try = true; if( IS_BP_EXECUTE( th ) ) return( false ); MADTypeInfo( th, &mti ); switch( mti.b.bits / BITS_PER_BYTE ) { case 8: if( !Is8ByteBreakpointsSupported() ) { ok_to_try = false; } // fall down case 1: case 2: case 4: if( ok_to_try ) { if( FindBreak( addr ) != NULL ) { Error( ERR_NONE, LIT_ENG( ERR_POINT_EXISTS ) ); } bp = AddPoint( addr, th, false ); if( bp == NULL ) return( true ); bp->source_line = DupStr( comment ); RecordBreakEvent( bp, B_SET ); return( true ); } // fall down default: return( false ); }}
开发者ID:groessler,项目名称:open-watcom-v2,代码行数:34,
示例3: ProcCmdvoid ProcCmd( void ){ char buff[TXT_LEN]; unsigned screen_mem; size_t have_env; int pass; MemSize = MIN_MEM_SIZE; TrapParms = NULL; _SwitchOn( SW_LOAD_SYMS ); _SwitchOn( SW_USE_MOUSE ); ProcSysOptInit(); DUIScreenOptInit(); have_env = DUIEnvLkup( EXENAME, buff, sizeof( buff ) ); for( pass = 1; pass <= 2; ++pass ) { if( have_env ) { GetArg = &GetEnvArg; CurrArgc = 0; CurrArgp = buff; ProcOptList( pass ); if( CurrChar != ARG_TERMINATE ) { OptError( LIT_ENG( STARTUP_Expect_End_Env_Str ) ); } } GetArg = &GetCmdArg; CurrArgc = 0; CurrArgp = GetCmdArg( 0 ); if( CurrArgp != NULL ) { ProcOptList( pass ); if( pass == 2 ) { SetCmdArgStart( CurrArgc, CurrArgp ); } } if( pass == 1 ) { screen_mem = DUIConfigScreen(); if( MemSize + screen_mem >= MemSize ) { MemSize += screen_mem; } else { MemSize = ~0; } SysSetMemLimit(); TrapParms = DupStr( "std" ); InvokeFile = DupStr( "" ); } }}
开发者ID:Azarien,项目名称:open-watcom-v2,代码行数:47,
示例4: WantEquals/* * GetFileName -- get filename from command line */char *GetFileName( int pass ){ char buff[CMD_LEN]; WantEquals(); GetItem( buff ); return( pass == 1 ? NULL : DupStr( buff ) );}
开发者ID:Azarien,项目名称:open-watcom-v2,代码行数:11,
示例5: _mm_fseekCHAR *S69_LoadTitle(void){ CHAR s[36]; _mm_fseek(modreader,2,SEEK_SET); if(!_mm_read_UBYTES(s,36,modreader)) return NULL; return(DupStr(s,36,1));}
开发者ID:LighFusion,项目名称:surreal,代码行数:9,
示例6: _mm_fseekstatic CHAR *STX_LoadTitle(void){ CHAR s[28]; _mm_fseek(modreader,0,SEEK_SET); if(!_mm_read_UBYTES(s,20,modreader)) return NULL; return(DupStr(s,28,1));}
开发者ID:OS2World,项目名称:LIB-SDL-2014,代码行数:9,
示例7: _mm_fseekCHAR *DSM_LoadTitle(void){ CHAR s[28]; _mm_fseek(modfp,12,SEEK_SET); if(!_mm_fread(s,28,1,modfp)) return NULL; return(DupStr(s,28));}
开发者ID:DavisDev,项目名称:oslib-mod,代码行数:9,
示例8: _mm_fseekCHAR *DSM_LoadTitle(void){ CHAR s[28]; _mm_fseek(modreader,12,SEEK_SET); if(!_mm_read_UBYTES(s,28,modreader)) return NULL; return(DupStr(s,28,1));}
开发者ID:0xD34D,项目名称:libmikmod-android,代码行数:9,
示例9: ImgMenuItemstatic void ImgMenuItem( a_window *wnd, gui_ctl_id id, int row, int piece ){ image_entry *img; char *new_name; char *old_name; piece=piece; img = ImgGetImage( row ); switch( id ) { case MENU_INITIALIZE: WndMenuGrayAll( wnd ); if( img != NULL ) { if( img->dip_handle == NO_MOD ) { WndMenuEnable( wnd, MENU_IMAGE_ADD_SYMBOLS, TRUE ); } else { WndMenuEnableAll( wnd ); } } break; case MENU_IMAGE_ADD_SYMBOLS: // nyi - change sym_file if( img->deferred_symbols ) { ReLoadSymInfo( img ); } else { new_name = DupStr( ImgSymName( img, TRUE ) ); if( !SymBrowse( &new_name ) ) { _Free( new_name ); } else { UnLoadSymInfo( img, TRUE ); old_name = img->sym_name; img->sym_name = new_name; if( ReLoadSymInfo( img ) ) { _Free( old_name ); } else { img->sym_name = old_name; _Free( new_name ); } } } ImgInit( wnd ); break; case MENU_IMAGE_DEL_SYMBOLS: UnLoadSymInfo( img, TRUE ); ImgInit( wnd ); break; case MENU_IMAGE_SHOW_FUNCTIONS: WndGblFuncInspect( img->dip_handle ); break; case MENU_IMAGE_SHOW_MODULES: WndModListInspect( img->dip_handle ); break; case MENU_IMAGE_SHOW_GLOBALS: WndGblVarInspect( img->dip_handle ); break; }}
开发者ID:MikeyG,项目名称:open-watcom-v2,代码行数:56,
示例10: _mm_fseekstatic CHAR *GT2_LoadTitle(void){ CHAR title[33]; _mm_fseek(modreader, 8, SEEK_SET); if (!_mm_read_UBYTES(title, 32, modreader)) return NULL; title[32] = 0; return (DupStr(title, 32, 1));}
开发者ID:OS2World,项目名称:LIB-SDL-2014,代码行数:11,
示例11: DlgListvoid DlgList( const char *title, void (*clear)(void), void (*add)(const char *,unsigned), char_ring *(*next)(char_ring *), char *(*name)(char_ring *) ){ dlg_list dlg; dlg.clear = clear; dlg.add = add; dlg.next = next; dlg.name = name; dlg.title = DupStr( title ); ResDlgOpen( &SourceEvent, &dlg, GUI_MAKEINTRESOURCE( DIALOG_LIST ) );}
开发者ID:NoSuchProcess,项目名称:open-watcom-v2,代码行数:11,
示例12: SetBPConditionvoid SetBPCondition( brkp *bp, const char *condition ){ if( bp->condition != NULL ) { _Free( bp->condition ); } if( condition == NULL || condition[0] == '/0' ) { bp->condition = NULL; } else { bp->condition = DupStr( condition ); } bp->status.b.use_condition = ( bp->condition != NULL );}
开发者ID:groessler,项目名称:open-watcom-v2,代码行数:12,
示例13: tmpBaseRec::BaseRec(const DZStrW &base){ DZStrW tmp(base); TCHAR lc = tmp.LastChar(); if (lc != _T(':') && lc != BSLASH) tmp += BSLASH; Base = DupStr(tmp); Next = NULL;}
开发者ID:geoffsmith82,项目名称:delphizip,代码行数:12,
示例14: OKT_doSAMP/* Read sample information */static BOOL OKT_doSAMP(int len){ int t; SAMPLE *q; OKTSAMPLE s; of.numins = of.numsmp = (len / 0x20); if (!AllocSamples()) return 0; for (t = 0, q = of.samples; t < of.numins; t++, q++) { _mm_read_UBYTES(s.sampname, 20, modreader); s.len = _mm_read_M_ULONG(modreader); s.loopbeg = _mm_read_M_UWORD(modreader); s.looplen = _mm_read_M_UWORD(modreader); _mm_read_UBYTE(modreader); s.volume = _mm_read_UBYTE(modreader); _mm_read_M_UWORD(modreader); if (_mm_eof(modreader)) { _mm_errno = MMERR_LOADING_SAMPLEINFO; return 0; } if (!s.len) q->seekpos = q->length = q->loopstart = q->loopend = q->flags = 0; else { s.len--; /* sanity checks */ if (s.loopbeg > s.len) s.loopbeg = s.len; if (s.loopbeg + s.looplen > s.len) s.looplen = s.len - s.loopbeg; if (s.looplen < 2) s.looplen = 0; q->length = s.len; q->loopstart = s.loopbeg; q->loopend = s.looplen + q->loopstart; q->volume = s.volume; q->flags = SF_SIGNED; if (s.looplen) q->flags |= SF_LOOP; } q->samplename = DupStr(s.sampname, 20, 1); q->speed = 8363; } return 1;}
开发者ID:albertz,项目名称:timidity-macosx,代码行数:51,
示例15: ULT_Loadstatic BOOL ULT_Load(BOOL curious){ int t,u,tracks=0; SAMPLE *q; ULTSAMPLE s; ULTHEADER mh; UBYTE nos,noc,nop; /* try to read module header */ _mm_read_string(mh.id,15,modreader); _mm_read_string(mh.songtitle,32,modreader); mh.reserved=_mm_read_UBYTE(modreader); if(_mm_eof(modreader)) { _mm_errno = MMERR_LOADING_HEADER; return 0; } ULT_Version[ULT_VERSION_LEN-1]='3'+(mh.id[14]-'1'); of.modtype = DupStr(ULT_Version,ULT_VERSION_LEN,1); of.initspeed = 6; of.inittempo = 125; of.reppos = 0; /* read songtext */ if ((mh.id[14]>'1')&&(mh.reserved)) if(!ReadLinedComment(mh.reserved * 32, 32)) return 0; nos=_mm_read_UBYTE(modreader); if(_mm_eof(modreader)) { _mm_errno = MMERR_LOADING_HEADER; return 0; } of.songname=DupStr(mh.songtitle,32,1); of.numins=of.numsmp=nos; if(!AllocSamples()) return 0; q = of.samples; for(t=0; t<nos; t++) { /* try to read sample info */ _mm_read_string(s.samplename,32,modreader); _mm_read_string(s.dosname,12,modreader); s.loopstart =_mm_read_I_ULONG(modreader); s.loopend =_mm_read_I_ULONG(modreader); s.sizestart =_mm_read_I_ULONG(modreader); s.sizeend =_mm_read_I_ULONG(modreader); s.volume =_mm_read_UBYTE(modreader); s.flags =_mm_read_UBYTE(modreader); s.speed =(mh.id[14]>='4')?_mm_read_I_UWORD(modreader):8363; s.finetune =_mm_read_I_SWORD(modreader); if(_mm_eof(modreader)) { _mm_errno = MMERR_LOADING_SAMPLEINFO; return 0; } q->samplename=DupStr(s.samplename,32,1); /* The correct formula for the coefficient would be pow(2,(double)s.finetume/OCTAVE/32768), but to avoid floating point here, we'll use a first order approximation here. 1/567290 == Ln(2)/OCTAVE/32768 */ q->speed=s.speed+s.speed*(((SLONG)s.speed*(SLONG)s.finetune)/567290); q->length = s.sizeend-s.sizestart; q->volume = s.volume>>2; q->loopstart = s.loopstart; q->loopend = s.loopend; q->flags = SF_SIGNED; if(s.flags&ULTS_LOOP) q->flags|=SF_LOOP; if(s.flags&ULTS_16BITS) { s.sizeend+=(s.sizeend-s.sizestart); s.sizestart<<=1; q->flags|=SF_16BITS; q->loopstart>>=1; q->loopend>>=1; } q++; }
开发者ID:gameblabla,项目名称:methane,代码行数:78,
示例16: FAR_LoadBOOL FAR_Load (BOOL curious){ int t, u, tracks = 0; SAMPLE *q; FARSAMPLE s; FARNOTE *crow; UBYTE smap[8]; /* try to read module header (first part) */ _mm_read_UBYTES (mh1->id, 4, modreader); _mm_read_SBYTES (mh1->songname, 40, modreader); _mm_read_SBYTES (mh1->blah, 3, modreader); mh1->headerlen = _mm_read_I_UWORD (modreader); mh1->version = _mm_read_UBYTE (modreader); _mm_read_UBYTES (mh1->onoff, 16, modreader); _mm_read_UBYTES (mh1->edit1, 9, modreader); mh1->speed = _mm_read_UBYTE (modreader); _mm_read_UBYTES (mh1->panning, 16, modreader); _mm_read_UBYTES (mh1->edit2, 4, modreader); mh1->stlen = _mm_read_I_UWORD (modreader); /* init modfile data */ of.modtype = strdup (FAR_Version); of.songname = DupStr (mh1->songname, 40, 1); of.numchn = 16; of.initspeed = mh1->speed; of.inittempo = 80; of.reppos = 0; for (t = 0; t < 16; t++) of.panning[t] = mh1->panning[t] << 4; /* read songtext into comment field */ if (mh1->stlen) if (!ReadComment (mh1->stlen)) return 0; /* try to read module header (second part) */ _mm_read_UBYTES (mh2->orders, 256, modreader); mh2->numpat = _mm_read_UBYTE (modreader); mh2->snglen = _mm_read_UBYTE (modreader); mh2->loopto = _mm_read_UBYTE (modreader); _mm_read_I_UWORDS (mh2->patsiz, 256, modreader); of.numpos = mh2->snglen; if (!AllocPositions (of.numpos)) return 0; for (t = 0; t < of.numpos; t++) { if (mh2->orders[t] == 0xff) break; of.positions[t] = mh2->orders[t]; } /* count number of patterns stored in file */ of.numpat = 0; for (t = 0; t < 256; t++) if (mh2->patsiz[t]) if ((t + 1) > of.numpat) of.numpat = t + 1; of.numtrk = of.numpat * of.numchn; /* seek across eventual new data */ _mm_fseek (modreader, mh1->headerlen - (869 + mh1->stlen), SEEK_CUR); /* alloc track and pattern structures */ if (!AllocTracks ()) return 0; if (!AllocPatterns ()) return 0; for (t = 0; t < of.numpat; t++) { UBYTE rows = 0; memset (pat, 0, 256 * 16 * 4 * sizeof (FARNOTE)); if (mh2->patsiz[t]) { rows = _mm_read_UBYTE (modreader); /* tempo = */ _mm_read_UBYTE (modreader); crow = pat; /* file often allocates 64 rows even if there are less in pattern */ if (mh2->patsiz[t] < 2 + (rows * 16 * 4)) { _mm_errno = MMERR_LOADING_PATTERN; return 0; } for (u = (mh2->patsiz[t] - 2) / 4; u; u--, crow++) { crow->note = _mm_read_UBYTE (modreader); crow->ins = _mm_read_UBYTE (modreader); crow->vol = _mm_read_UBYTE (modreader); crow->eff = _mm_read_UBYTE (modreader); } if (_mm_eof (modreader)) { _mm_errno = MMERR_LOADING_PATTERN; return 0;//.........这里部分代码省略.........
开发者ID:Distrotech,项目名称:TiMidity,代码行数:101,
示例17: IT_LoadBOOL IT_Load(BOOL curious){ int t,u,lp; INSTRUMENT *d; SAMPLE *q; BOOL compressed=0; numtrk=0; filters=0; /* try to read module header */ _mm_read_I_ULONG(modreader); /* kill the 4 byte header */ _mm_read_string(mh->songname,26,modreader); _mm_read_UBYTES(mh->blank01,2,modreader); mh->ordnum =_mm_read_I_UWORD(modreader); mh->insnum =_mm_read_I_UWORD(modreader); mh->smpnum =_mm_read_I_UWORD(modreader); mh->patnum =_mm_read_I_UWORD(modreader); mh->cwt =_mm_read_I_UWORD(modreader); mh->cmwt =_mm_read_I_UWORD(modreader); mh->flags =_mm_read_I_UWORD(modreader); mh->special =_mm_read_I_UWORD(modreader); mh->globvol =_mm_read_UBYTE(modreader); mh->mixvol =_mm_read_UBYTE(modreader); mh->initspeed =_mm_read_UBYTE(modreader); mh->inittempo =_mm_read_UBYTE(modreader); mh->pansep =_mm_read_UBYTE(modreader); mh->zerobyte =_mm_read_UBYTE(modreader); mh->msglength =_mm_read_I_UWORD(modreader); mh->msgoffset =_mm_read_I_ULONG(modreader); _mm_read_UBYTES(mh->blank02,4,modreader); _mm_read_UBYTES(mh->pantable,64,modreader); _mm_read_UBYTES(mh->voltable,64,modreader); if(_mm_eof(modreader)) { _mm_errno=MMERR_LOADING_HEADER; return 0; } /* set module variables */ of.songname = DupStr(mh->songname,26,0); /* make a cstr of songname */ of.reppos = 0; of.numpat = mh->patnum; of.numins = mh->insnum; of.numsmp = mh->smpnum; of.initspeed = mh->initspeed; of.inittempo = mh->inittempo; of.initvolume = mh->globvol; of.flags |= UF_BGSLIDES|UF_ARPMEM; if(mh->songname[25]) { of.numvoices=1+mh->songname[25];#ifdef MIKMOD_DEBUG fprintf(stderr,"Embedded IT limitation to %d voices/n",of.numvoices);#endif } /* set the module type */ /* 2.17 : IT 2.14p4 */ /* 2.16 : IT 2.14p3 with resonant filters */ /* 2.15 : IT 2.14p3 (improved compression) */ if((mh->cwt<=0x219)&&(mh->cwt>=0x217)) of.modtype=strdup(IT_Version[mh->cmwt<0x214?4:5]); else if (mh->cwt>=0x215) of.modtype=strdup(IT_Version[mh->cmwt<0x214?2:3]); else { of.modtype = strdup(IT_Version[mh->cmwt<0x214?0:1]); of.modtype[mh->cmwt<0x214?15:26] = (mh->cwt>>8)+'0'; of.modtype[mh->cmwt<0x214?17:28] = ((mh->cwt>>4)&0xf)+'0'; of.modtype[mh->cmwt<0x214?18:29] = ((mh->cwt)&0xf)+'0'; } if(mh->flags&8) of.flags|=(UF_XMPERIODS | UF_LINEAR); if((mh->cwt>=0x106)&&(mh->flags&16)) old_effect=1; else old_effect=0; /* set panning positions */ for(t=0;t<64;t++) { mh->pantable[t]&=0x7f; if(mh->pantable[t]<64) of.panning[t]=mh->pantable[t]<<2; else if(mh->pantable[t]==64) of.panning[t]=255; else if(mh->pantable[t]==100) of.panning[t]=PAN_SURROUND; else if(mh->pantable[t]==127) of.panning[t]=PAN_CENTER; else { _mm_errno=MMERR_LOADING_HEADER; return 0; } } /* set channel volumes */ memcpy(of.chanvol,mh->voltable,64);//.........这里部分代码省略.........
开发者ID:AzagraMac,项目名称:PS2_SDK,代码行数:101,
示例18: DSM_LoadBOOL DSM_Load (BOOL curious){ int t; DSMINST s; SAMPLE *q; int cursmp = 0, curpat = 0, track = 0; blocklp = 0; blockln = 12; if (!GetBlockHeader ()) return 0; if (memcmp (blockid, SONGID, 4)) { _mm_errno = MMERR_LOADING_HEADER; return 0; } _mm_read_UBYTES (mh->songname, 28, modreader); mh->version = _mm_read_I_UWORD (modreader); mh->flags = _mm_read_I_UWORD (modreader); mh->reserved2 = _mm_read_I_ULONG (modreader); mh->numord = _mm_read_I_UWORD (modreader); mh->numsmp = _mm_read_I_UWORD (modreader); mh->numpat = _mm_read_I_UWORD (modreader); mh->numtrk = _mm_read_I_UWORD (modreader); mh->globalvol = _mm_read_UBYTE (modreader); mh->mastervol = _mm_read_UBYTE (modreader); mh->speed = _mm_read_UBYTE (modreader); mh->bpm = _mm_read_UBYTE (modreader); _mm_read_UBYTES (mh->panpos, DSM_MAXCHAN, modreader); _mm_read_UBYTES (mh->orders, DSM_MAXORDERS, modreader); /* set module variables */ of.initspeed = mh->speed; of.inittempo = mh->bpm; of.modtype = strdup (DSM_Version); of.numchn = mh->numtrk; of.numpat = mh->numpat; of.numtrk = of.numchn * of.numpat; of.songname = DupStr (mh->songname, 28, 1); /* make a cstr of songname */ of.reppos = 0; for (t = 0; t < DSM_MAXCHAN; t++) of.panning[t] = mh->panpos[t] == DSM_SURROUND ? PAN_SURROUND : mh->panpos[t] < 0x80 ? (mh->panpos[t] << 1) : 255; if (!AllocPositions (mh->numord)) return 0; of.numpos = 0; for (t = 0; t < mh->numord; t++) { of.positions[of.numpos] = mh->orders[t]; if (mh->orders[t] < 254) of.numpos++; } of.numins = of.numsmp = mh->numsmp; if (!AllocSamples ()) return 0; if (!AllocTracks ()) return 0; if (!AllocPatterns ()) return 0; while (cursmp < of.numins || curpat < of.numpat) { if (!GetBlockHeader ()) return 0; if (!memcmp (blockid, INSTID, 4) && cursmp < of.numins) { q = &of.samples[cursmp]; /* try to read sample info */ _mm_read_UBYTES (s.filename, 13, modreader); s.flags = _mm_read_I_UWORD (modreader); s.volume = _mm_read_UBYTE (modreader); s.length = _mm_read_I_ULONG (modreader); s.loopstart = _mm_read_I_ULONG (modreader); s.loopend = _mm_read_I_ULONG (modreader); s.reserved1 = _mm_read_I_ULONG (modreader); s.c2spd = _mm_read_I_UWORD (modreader); s.period = _mm_read_I_UWORD (modreader); _mm_read_UBYTES (s.samplename, 28, modreader); q->samplename = DupStr (s.samplename, 28, 1); q->seekpos = _mm_ftell (modreader); q->speed = s.c2spd; q->length = s.length; q->loopstart = s.loopstart; q->loopend = s.loopend; q->volume = s.volume; if (s.flags & 1) q->flags |= SF_LOOP; if (s.flags & 2) q->flags |= SF_SIGNED; /* (s.flags&4) means packed sample,//.........这里部分代码省略.........
开发者ID:albertz,项目名称:timidity-macosx,代码行数:101,
示例19: ULT_Loadstatic BOOL ULT_Load(void){ int t,u,tracks=0; INSTRUMENT *d; SAMPLE *q; ULTSAMPLE s; ULTHEADER mh; UBYTE nos,noc,nop; /* try to read module header */ _mm_read_str(mh.id,15); _mm_read_str(mh.songtitle,32); mh.reserved=_mm_read_UBYTE(); if(modpos > modsize){ gModPlayerErrorMessage=ERROR_LOADING_HEADER; return 0; } if(mh.id[14]<'1' || mh.id[14]>'4'){ //printf("This version is not yet supported/n"); return 0; } of.modtype=strdup(ULT_Version[mh.id[14]-'1']); of.initspeed=6; of.inittempo=125; /* read songtext */ if(!ReadComment((UWORD)(mh.reserved * 32))) return 0; nos=_mm_read_UBYTE(); if(modpos > modsize){ gModPlayerErrorMessage=ERROR_LOADING_HEADER; return 0; } of.songname=DupStr(mh.songtitle,32); of.numins=nos; if(!AllocInstruments()) return 0; d=of.instruments; for(t=0;t<nos;t++){ d->numsmp=1; if(!AllocSamples(d)) return 0; q=d->samples; /* try to read sample info */ _mm_read_str(s.samplename,32); _mm_read_str(s.dosname,12); s.loopstart =_mm_read_I_ULONG(); s.loopend =_mm_read_I_ULONG(); s.sizestart =_mm_read_I_ULONG(); s.sizeend =_mm_read_I_ULONG(); s.volume =_mm_read_UBYTE(); s.flags =_mm_read_UBYTE(); s.finetune =_mm_read_I_SWORD(); if(modpos > modsize){ gModPlayerErrorMessage=ERROR_LOADING_SAMPLEINFO; return 0; } d->insname=DupStr(s.samplename,32); q->seekpos=0; q->c2spd=8363; if(mh.id[14]>='4'){ _mm_read_I_UWORD(); /* read 1.6 extra info(??) word */ q->c2spd=s.finetune; } q->length=s.sizeend-s.sizestart; q->volume=s.volume>>2; q->loopstart=s.loopstart; q->loopend=s.loopend; q->flags=SF_SIGNED; if(s.flags&ULTS_LOOP){ q->flags|=SF_LOOP; } if(s.flags&ULTS_16BITS){ q->flags|=SF_16BITS; q->loopstart>>=1; q->loopend>>=1; } /* printf("Sample %d %s length %ld/n",t,d->samplename,d->length); */ d++;//.........这里部分代码省略.........
开发者ID:fatman2021,项目名称:myforthprocessor,代码行数:101,
示例20: MTM_Loadstatic int MTM_Load(int curious){ int t,u; MTMSAMPLE s; SAMPLE *q; (void)curious; /* try to read module header */ _mm_read_UBYTES(mh->id,3,modreader); mh->version =_mm_read_UBYTE(modreader); _mm_read_string(mh->songname,20,modreader); mh->numtracks =_mm_read_I_UWORD(modreader); mh->lastpattern =_mm_read_UBYTE(modreader); mh->lastorder =_mm_read_UBYTE(modreader); mh->commentsize =_mm_read_I_UWORD(modreader); mh->numsamples =_mm_read_UBYTE(modreader); mh->attribute =_mm_read_UBYTE(modreader); mh->beatspertrack=_mm_read_UBYTE(modreader); mh->numchannels =_mm_read_UBYTE(modreader); _mm_read_UBYTES(mh->panpos,32,modreader); if(_mm_eof(modreader)) { _mm_errno = MMERR_LOADING_HEADER; return 0; } /* set module variables */ of.initspeed = 6; of.inittempo = 125; of.modtype = StrDup(MTM_Version); of.numchn = mh->numchannels; of.numtrk = mh->numtracks+1; /* get number of channels */ of.songname = DupStr(mh->songname,20,1); /* make a cstr of songname */ of.numpos = mh->lastorder+1; /* copy the songlength */ of.numpat = mh->lastpattern+1; of.reppos = 0; of.flags |= UF_PANNING; for(t=0;t<32;t++) of.panning[t]=mh->panpos[t]<< 4; of.numins=of.numsmp=mh->numsamples; if(!AllocSamples()) return 0; q=of.samples; for(t=0;t<of.numins;t++) { /* try to read sample info */ _mm_read_string(s.samplename,22,modreader); s.length =_mm_read_I_ULONG(modreader); s.reppos =_mm_read_I_ULONG(modreader); s.repend =_mm_read_I_ULONG(modreader); s.finetune =_mm_read_UBYTE(modreader); s.volume =_mm_read_UBYTE(modreader); s.attribute =_mm_read_UBYTE(modreader); if(_mm_eof(modreader)) { _mm_errno = MMERR_LOADING_SAMPLEINFO; return 0; } q->samplename = DupStr(s.samplename,22,1); q->seekpos = 0; q->speed = finetune[s.finetune]; q->length = s.length; q->loopstart = s.reppos; q->loopend = s.repend; q->volume = s.volume; if((s.repend-s.reppos)>2) q->flags |= SF_LOOP; if(s.attribute&1) { /* If the sample is 16-bits, convert the length and replen byte-values into sample-values */ q->flags|=SF_16BITS; q->length>>=1; q->loopstart>>=1; q->loopend>>=1; } q++; }
开发者ID:4nykey,项目名称:rockbox,代码行数:76,
示例21: if tracker=NUMTRACKERS-1; /* unknown tracker */ else { if(mh->tracker>=0x3217) tracker=NUMTRACKERS+1; /* IT 2.14p4 */ else if(mh->tracker>=0x3216) tracker=NUMTRACKERS; /* IT 2.14p3 */ else tracker--; } of.modtype = strdup(S3M_Version[tracker]); if(tracker<NUMTRACKERS) { of.modtype[numeric[tracker]] = ((mh->tracker>>8) &0xf)+'0'; of.modtype[numeric[tracker]+2] = ((mh->tracker>>4)&0xf)+'0'; of.modtype[numeric[tracker]+3] = ((mh->tracker)&0xf)+'0'; } /* set module variables */ of.songname = DupStr(mh->songname,28,0); of.numpat = mh->patnum; of.reppos = 0; of.numins = of.numsmp = mh->insnum; of.initspeed = mh->initspeed; of.inittempo = mh->inittempo; of.initvolume = mh->mastervol<<1; of.flags |= UF_ARPMEM | UF_PANNING; if((mh->tracker==0x1300)||(mh->flags&64)) of.flags|=UF_S3MSLIDES; of.bpmlimit = 32; /* read the order data */ if(!AllocPositions(mh->ordnum)) return 0; if(!(origpositions=_mm_calloc(mh->ordnum,sizeof(UWORD)))) return 0;
开发者ID:fruitz-of-dojo,项目名称:libmikmod,代码行数:30,
示例22: S69_LoadBOOL S69_Load(BOOL curious){ int i; SAMPLE *current; S69SAMPLE sample; /* module header */ _mm_read_UBYTES(mh->marker,2,modreader); _mm_read_UBYTES(mh->message,108,modreader); mh->nos=_mm_read_UBYTE(modreader); mh->nop=_mm_read_UBYTE(modreader); mh->looporder=_mm_read_UBYTE(modreader); _mm_read_UBYTES(mh->orders,0x80,modreader); for(i=0;i<0x80;i++) if ((mh->orders[i]>=0x80)&&(mh->orders[i]!=0xff)) { _mm_errno=MMERR_NOT_A_MODULE; return 1; } _mm_read_UBYTES(mh->tempos,0x80,modreader); for(i=0;i<0x80;i++) if ((!mh->tempos[i])||(mh->tempos[i]>32)) { _mm_errno=MMERR_NOT_A_MODULE; return 1; } _mm_read_UBYTES(mh->breaks,0x80,modreader); for(i=0;i<0x80;i++) if (mh->breaks[i]>0x3f) { _mm_errno=MMERR_NOT_A_MODULE; return 1; } /* set module variables */ of.initspeed=4; of.inittempo=78; of.songname=DupStr(mh->message,36,1); of.modtype=StrDup(S69_Version[memcmp(mh->marker,"JN",2)==0]); of.numchn=8; of.numpat=mh->nop; of.numins=of.numsmp=mh->nos; of.numtrk=of.numchn*of.numpat; of.flags=UF_XMPERIODS|UF_LINEAR; for(i= 35;(i>= 0)&&(mh->message[i]==' ');i--) mh->message[i]=0; for(i=36+35;(i>=36+0)&&(mh->message[i]==' ');i--) mh->message[i]=0; for(i=72+35;(i>=72+0)&&(mh->message[i]==' ');i--) mh->message[i]=0; if((mh->message[0])||(mh->message[36])||(mh->message[72])) if((of.comment=(CHAR*)MikMod_malloc(3*(36+1)+1))) { strncpy(of.comment,mh->message,36); strcat(of.comment,"/r"); if (mh->message[36]) strncat(of.comment,mh->message+36,36); strcat(of.comment,"/r"); if (mh->message[72]) strncat(of.comment,mh->message+72,36); strcat(of.comment,"/r"); of.comment[3*(36+1)]=0; } if(!AllocPositions(0x80)) return 0; for(i=0;i<0x80;i++) { if(mh->orders[i]>=mh->nop) break; of.positions[i]=mh->orders[i]; } of.numpos=i; of.reppos=mh->looporder<of.numpos?mh->looporder:0; if(!AllocSamples()) return 0; current=of.samples; for(i=0;i<of.numins;i++) { /* sample information */ _mm_read_UBYTES((UBYTE*)sample.filename,13,modreader); sample.length=_mm_read_I_SLONG(modreader); sample.loopbeg=_mm_read_I_SLONG(modreader); sample.loopend=_mm_read_I_SLONG(modreader); if (sample.loopend==0xfffff) sample.loopend=0; if((sample.length<0)||(sample.loopbeg<-1)||(sample.loopend<-1)) { _mm_errno = MMERR_LOADING_HEADER; return 0; } current->samplename=DupStr(sample.filename,13,1); current->seekpos=0; current->speed=0; current->length=sample.length; current->loopstart=sample.loopbeg; current->loopend=sample.loopend; current->flags=(sample.loopbeg<sample.loopend)?SF_LOOP:0; current->volume=64; current++; } if(!S69_LoadPatterns()) return 0; return 1;}
开发者ID:LighFusion,项目名称:surreal,代码行数:96,
注:本文中的DupStr函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ DupString函数代码示例 C++ DumpVar函数代码示例 |