bool GetLock(const char *sLockname) { int fd; char sAccum[256]; if((fd=open(sLockname,O_WRONLY|O_EXCL|O_CREAT,S_IRUSR|S_IWUSR))<0) { printf("failed!\n"); if(RDCheckPid(RDGetPathPart(sLockname),RDGetBasePart(sLockname))) { return false; } ClearLock(sLockname); if((fd=open(sLockname,O_WRONLY|O_EXCL|O_CREAT,S_IRUSR|S_IWUSR))<0) { return false; } } sprintf(sAccum,"%d",getpid()); write(fd,sAccum,strlen(sAccum)); close(fd); return true; }
void RDCartDialog::loadFileData() { #ifndef WIN32 QString filename; RDGroup *group=NULL; RDCart *cart=NULL; RDCut *cut=NULL; RDAudioImport *conv; RDAudioImport::ErrorCode err; RDAudioConvert::ErrorCode conv_err; RDSettings settings; unsigned cartnum=0; QString file_title=""; RDWaveFile *wavefile=NULL; RDWaveData wavedata; filename=Q3FileDialog::getOpenFileName(cart_import_path, cart_import_file_filter,this); if(!filename.isEmpty()) { // // Get Cart Number // cart_import_path=RDGetPathPart(filename); group=new RDGroup(rda->system()->tempCartGroup()); if((!group->exists())||((cartnum=group->nextFreeCart())==0)) { delete group; QMessageBox::warning(this,tr("Cart Error"), tr("Unable to get temporary cart number for import!")); return; } delete group; // // Create Cart // cart=new RDCart(cartnum); if(!cart->create(rda->system()->tempCartGroup(),RDCart::Audio)) { delete cart; QMessageBox::warning(this,tr("Cart Error"), tr("Unable to create temporary cart for import!")); return; } cart->setOwner(rda->station()->name()); cut=new RDCut(cartnum,1,true); // // Import Audio // cart_busy_dialog->show(tr("Importing"),tr("Importing...")); conv=new RDAudioImport(rda->station(),rda->config(),this); conv->setCartNumber(cartnum); conv->setCutNumber(1); conv->setSourceFile(filename); settings.setChannels(2); settings.setNormalizationLevel(-11); conv->setDestinationSettings(&settings); conv->setUseMetadata(true); err=conv->runImport(cart_user_name,cart_user_password,&conv_err); cart_busy_dialog->hide(); switch(conv_err) { case RDAudioImport::ErrorOk: break; default: QMessageBox::warning(this,tr("Import Error"), RDAudioImport::errorText(err,conv_err)); delete conv; delete cart; delete cut; return; } // // Check Metadata // wavefile=new RDWaveFile(filename); if(wavefile->openWave(&wavedata)) { if((!wavedata.metadataFound())||(wavedata.title().isEmpty())) { cart->setTitle(tr("Imported from")+" "+RDGetBasePart(filename)); } } *cart_cartnum=cartnum; *cart_temp_allowed=true; delete conv; delete cart; delete cut; done(0); } #endif // WIN32 }