void setenv_( const char *name,const char *value,int overwrite ){ #if _WIN32 if( !overwrite && getenv( name ) ) return; bbString tmp=bbString( name )+BB_T( "=" )+bbString( value ); putenv( tmp.c_str() ); #else setenv( name,value,overwrite ); #endif }
bbString t_mx2_Translator::m_AllocGCTmp(t_mx2_Type* l_type){ struct f0_t : public bbGCFrame{ t_mx2_Translator_GCTmp* l_tmp{}; void gcMark(){ bbGCMarkPtr(l_tmp); } }f0{}; { bbInt l_i=bbInt(0); for(;(l_i<this->m__0gcframe->m_tmps->m_Length());l_i+=1){ struct f2_t : public bbGCFrame{ t_mx2_Translator_GCTmp* l_tmp{}; void gcMark(){ bbGCMarkPtr(l_tmp); } }f2{}; f2.l_tmp=this->m__0gcframe->m_tmps->m__idx(l_i); if((f2.l_tmp->m_used||!f2.l_tmp->m_type->m_Equals(l_type))){ continue; } f2.l_tmp->m_used=true; return ((this->m__0gcframe->m_ident+BB_T("."))+f2.l_tmp->m_ident); } } f0.l_tmp=bbGCNew<t_mx2_Translator_GCTmp>(); f0.l_tmp->m_used=true; f0.l_tmp->m_type=l_type; f0.l_tmp->m_ident=(BB_T("t")+bbString(this->m__0gcframe->m_tmps->m_Length())); this->m__0gcframe->m_tmps->m_Push(f0.l_tmp); return ((this->m__0gcframe->m_ident+BB_T("."))+f0.l_tmp->m_ident); }
t_mx2_Translator_GCFrame::t_mx2_Translator_GCFrame(t_mx2_Translator_GCFrame* l_outer,bbInt l_inspos){ init(); this->m_outer=l_outer; this->m_inspos=l_inspos; if(bbBool(l_outer)){ this->m_depth=(l_outer->m_depth+1); } this->m_ident=(BB_T("f")+bbString(this->m_depth)); }
void t_default_VSynth::m_OpenAudio(){ struct f0_t : public bbGCFrame{ SDL_AudioSpec l_spec{}; void gcMark(){ bbGCMark(l_spec); } }f0{}; this->m_buffer=bbArray<bbFloat>::create((g_default_FragmentSize*2)); f0.l_spec.freq=44100; f0.l_spec.format=bbShort(AUDIO_S16); f0.l_spec.channels=2; f0.l_spec.samples=bbShort(g_default_FragmentSize); f0.l_spec.callback=g_default_VSynth_audio_0callback; Mix_CloseAudio(); bbInt l_error=SDL_OpenAudio(&f0.l_spec,this->m_audioSpec); if(bbBool(l_error)){ puts((((BB_T("error=")+bbString(l_error))+BB_T(" "))+bbString::fromCString(((void*)(SDL_GetError())))).c_str());fflush( stdout ); } SDL_PauseAudio(bbInt(0)); }
t_mx2_Value* t_mx2_FuncType::m_Invoke(bbArray<bbGCVar<t_mx2_Value>>* l_args,t_mx2_Value* l_value){ struct f0_t : public bbGCFrame{ bbArray<bbGCVar<t_mx2_Value>>* l_args{}; f0_t(bbArray<bbGCVar<t_mx2_Value>>* l_args):l_args(l_args){ } void gcMark(){ bbGCMarkPtr(l_args); } }f0{l_args}; if((f0.l_args->length()!=this->m_argTypes->length())){ throw bbGCNew<t_mx2_SemantEx>((((BB_T("Wrong number of arguments - expecting ")+bbString(this->m_argTypes->length()))+BB_T(" not "))+bbString(f0.l_args->length()))); } f0.l_args=f0.l_args->slice(bbInt(0)); { bbInt l_i=bbInt(0); for(;(l_i<f0.l_args->length());l_i+=1){ f0.l_args->at(l_i)=f0.l_args->at(l_i)->m_UpCast(this->m_argTypes->at(l_i)); } } return ((t_mx2_Value*)(bbGCNew<t_mx2_InvokeValue>(l_value,f0.l_args))); }
bbString bbRequesters::RequestDir( bbString title,bbString dir ){ CoInitialize( 0 ); dir=dir.replace( "/","\\" ); LPMALLOC shm; BROWSEINFOW bi={0}; WCHAR buf[MAX_PATH],*p; GetFullPathNameW( dir.toWString(),MAX_PATH,buf,&p ); bi.hwndOwner=GetActiveWindow(); bi.lpszTitle=tmpWString( title ); bi.ulFlags=BIF_RETURNONLYFSDIRS|BIF_NEWDIALOGSTYLE; bi.lpfn=BrowseForFolderCallbackW; bi.lParam=(LPARAM)buf; beginPanel(); bbString str; if( ITEMIDLIST *idlist=SHBrowseForFolderW( &bi ) ){ SHGetPathFromIDListW( idlist,buf ); str=bbString( buf ); //SHFree( idlist ); //?!? } endPanel(); free( (void*)bi.lpszTitle ); str=str.replace( "\\","/" ); if( !str.endsWith( "/" ) ) str+="/"; return str; }
bbString t_mx2_ArrayType::m_TypeId(){ if((this->m_rank>1)){ return ((BB_T("A")+bbString(this->m_rank))+this->m_elemType->m_TypeId()); } return (BB_T("A")+this->m_elemType->m_TypeId()); }
bbString bbRequesters::RequestFile( bbString title,bbString exts,bbBool save,bbString path ){ bbString file,dir; path=path.replace( "/","\\" ); int i=path.findLast( "\\" ); if( i!=-1 ){ dir=path.slice( 0,i ); file=path.slice( 1+1 ); }else{ file=path; } if( file.length()>MAX_PATH ) return ""; if( exts.length() ){ if( exts.find( ":" )==-1 ){ exts=bbString( "Files\0*.",8 )+exts; }else{ exts=exts.replace( ":",bbString( "\0*.",3 ) ); } exts=exts.replace( ";",bbString( "\0",1 ) ); exts=exts.replace( ",",";*." )+bbString( "\0",1 ); } WCHAR buf[MAX_PATH+1]; memcpy( buf,file.data(),file.length()*2 ); buf[file.length()]=0; OPENFILENAMEW of={sizeof(of)}; of.hwndOwner=GetActiveWindow(); of.lpstrTitle=tmpWString( title ); of.lpstrFilter=tmpWString( exts ); of.lpstrFile=buf; of.lpstrInitialDir=dir.length() ? tmpWString( dir ) : 0; of.nMaxFile=MAX_PATH; of.Flags=OFN_HIDEREADONLY|OFN_NOCHANGEDIR; bbString str; beginPanel(); if( save ){ of.lpstrDefExt=L""; of.Flags|=OFN_OVERWRITEPROMPT; if( GetSaveFileNameW( &of ) ){ str=bbString( buf ); } }else{ of.Flags|=OFN_FILEMUSTEXIST; if( GetOpenFileNameW( &of ) ){ str=bbString( buf ); } } endPanel(); free( (void*)of.lpstrTitle ); free( (void*)of.lpstrFilter ); free( (void*)of.lpstrInitialDir ); str=str.replace( "\\","/" ); return str; }