void destruct_reader(READER * reader) { LIME_FILE *fh = NULL; fh = reader->fp; DestroyReader(reader); #ifdef HAVE_LIBLEMON MPI_File_close(fh); free(fh); /* NB This assumes construct_writer was used to malloc memory! */ #else /* HAVE_LIBLEMON */ fclose(fh); #endif /* HAVE_LIBLEMON */ }
int _tmain(int argc, _TCHAR* argv[]) { //--- create pen ---// da0lib::LaserPen* pLaserPen = CreateLaserPen(); da0lib::LASERPEN pen; pen.penid = RGB(255, 255, 0); pen.frequency = 12.34; pen.pulsewidth = 234.345; pen.speedmark = 333.223; pLaserPen->update(pen.penid, &pen); pLaserPen->save(L"test_xe4.pen"); //--- open pen ---// pLaserPen->open(L"test_xe4.pen"); da0lib::LASERPEN* pPen = pLaserPen->query(RGB(255, 255, 0)); _tprintf(L"pen.penid : %d\n", pPen->penid); _tprintf(L"pen.frequency : %.2f\n", pPen->frequency); _tprintf(L"pen.pulsewidth : %.2f\n", pPen->pulsewidth); _tprintf(L"pen.speedmark : %.2f\n\n", pPen->speedmark); DestroyLaserPen(pLaserPen); //--- create writer ---// Writer* pWriter = da0lib::CreateWriter(L"test_xe4.da0"); pWriter->layerBegin(L"testlayer"); pWriter->shapeBegin(); pWriter->shapeLine(RGB(255,255,0), -1.1,2.2, 3.3, 4.4); pWriter->shapeArc(RGB(255,255,0), 5,6,7,0,90); pWriter->shapeRectangle(RGB(255,255,0), -7,8,9,-10); DestroyWriter(pWriter); //--- create reader ---// Reader* pReader = da0lib::CreateReader(L"test_xe4.da0"); Readerable* pReaderable = new TMyReaderable(); pReader->load(); pReader->parse(pReaderable, NULL); DestroyReader(pReader); int t = getchar(); return 0; }
CPjSocket::~CPjSocket() { DestroyReader(); sock_.Close(); }
status_t PluginManager::CreateReader(Reader** reader, int32* streamCount, media_file_format* mff, BDataIO* source) { TRACE("PluginManager::CreateReader enter\n"); BPositionIO *seekable_source = dynamic_cast<BPositionIO *>(source); if (seekable_source == 0) { printf("PluginManager::CreateReader: non-seekable sources not " "supported yet\n"); return B_ERROR; } // get list of available readers from the server entry_ref refs[MAX_READERS]; int32 count; status_t ret = AddOnManager::GetInstance()->GetReaders(refs, &count, MAX_READERS); if (ret != B_OK) { printf("PluginManager::CreateReader: can't get list of readers: %s\n", strerror(ret)); return ret; } // try each reader by calling it's Sniff function... for (int32 i = 0; i < count; i++) { entry_ref ref = refs[i]; MediaPlugin* plugin = GetPlugin(ref); if (plugin == NULL) { printf("PluginManager::CreateReader: GetPlugin failed\n"); return B_ERROR; } ReaderPlugin* readerPlugin = dynamic_cast<ReaderPlugin*>(plugin); if (readerPlugin == NULL) { printf("PluginManager::CreateReader: dynamic_cast failed\n"); PutPlugin(plugin); return B_ERROR; } *reader = readerPlugin->NewReader(); if (*reader == NULL) { printf("PluginManager::CreateReader: NewReader failed\n"); PutPlugin(plugin); return B_ERROR; } seekable_source->Seek(0, SEEK_SET); (*reader)->Setup(seekable_source); (*reader)->fMediaPlugin = plugin; if ((*reader)->Sniff(streamCount) == B_OK) { TRACE("PluginManager::CreateReader: Sniff success " "(%ld stream(s))\n", *streamCount); (*reader)->GetFileFormatInfo(mff); return B_OK; } DestroyReader(*reader); *reader = NULL; } TRACE("PluginManager::CreateReader leave\n"); return B_MEDIA_NO_HANDLER; }
status_t PluginManager::CreateReader(Reader** reader, int32* streamCount, media_file_format* mff, BDataIO* source) { TRACE("PluginManager::CreateReader enter\n"); // The wrapper class will present our source in a more useful // way, we create an instance which is buffering our reads and // writes. BMediaIOWrapper* buffered_source = new BMediaIOWrapper(source); status_t ret = buffered_source->InitCheck(); if (ret != B_OK) return ret; // get list of available readers from the server entry_ref refs[MAX_READERS]; int32 count; ret = AddOnManager::GetInstance()->GetReaders(refs, &count, MAX_READERS); if (ret != B_OK) { printf("PluginManager::CreateReader: can't get list of readers: %s\n", strerror(ret)); return ret; } // try each reader by calling it's Sniff function... for (int32 i = 0; i < count; i++) { entry_ref ref = refs[i]; MediaPlugin* plugin = GetPlugin(ref); if (plugin == NULL) { printf("PluginManager::CreateReader: GetPlugin failed\n"); return B_ERROR; } ReaderPlugin* readerPlugin = dynamic_cast<ReaderPlugin*>(plugin); if (readerPlugin == NULL) { printf("PluginManager::CreateReader: dynamic_cast failed\n"); PutPlugin(plugin); return B_ERROR; } *reader = readerPlugin->NewReader(); if (*reader == NULL) { printf("PluginManager::CreateReader: NewReader failed\n"); PutPlugin(plugin); return B_ERROR; } buffered_source->Seek(0, SEEK_SET); (*reader)->Setup(buffered_source); (*reader)->fMediaPlugin = plugin; if ((*reader)->Sniff(streamCount) == B_OK) { TRACE("PluginManager::CreateReader: Sniff success " "(%ld stream(s))\n", *streamCount); (*reader)->GetFileFormatInfo(mff); return B_OK; } DestroyReader(*reader); *reader = NULL; } TRACE("PluginManager::CreateReader leave\n"); return B_MEDIA_NO_HANDLER; }