1/* Written by Eric Moon, from the Cortex Source code archive. 2 * Distributed under the terms of the Be Sample Code License 3 */ 4 5// ToneProducerAddOn.cpp 6// e.moon 4jun99 7 8#include "ToneProducer.h" 9#include "ToneProducerAddOn.h" 10#include <cstring> 11#include <cstdlib> 12 13// instantiation function 14extern "C" _EXPORT BMediaAddOn* make_media_addon(image_id image) { 15 return new ToneProducerAddOn(image); 16} 17 18// -------------------------------------------------------- // 19// ctor/dtor 20// -------------------------------------------------------- // 21 22ToneProducerAddOn::~ToneProducerAddOn() {} 23ToneProducerAddOn::ToneProducerAddOn(image_id image) : 24 BMediaAddOn(image) {} 25 26// -------------------------------------------------------- // 27// BMediaAddOn impl 28// -------------------------------------------------------- // 29 30status_t ToneProducerAddOn::InitCheck( 31 const char** out_failure_text) { 32 return B_OK; 33} 34 35int32 ToneProducerAddOn::CountFlavors() { 36 return 1; 37} 38 39status_t ToneProducerAddOn::GetFlavorAt( 40 int32 n, 41 const flavor_info** out_info) { 42 if(n) 43 return B_ERROR; 44 45 flavor_info* pInfo = new flavor_info; 46 pInfo->internal_id = n; 47 pInfo->name = "Demo Audio Producer"; 48 pInfo->info = "An add-on version of the ToneProducer node.\n" 49 "See the Be Developer Newsletter: 2 June, 1999\n" 50 "adapted by Eric Moon (4 June, 1999)"; 51 pInfo->kinds = B_BUFFER_PRODUCER | B_CONTROLLABLE; 52 pInfo->flavor_flags = 0; 53 pInfo->possible_count = 0; 54 55 pInfo->in_format_count = 0; 56 pInfo->in_formats = 0; 57 58 pInfo->out_format_count = 1; 59 media_format* pFormat = new media_format; 60 pFormat->type = B_MEDIA_RAW_AUDIO; 61 pFormat->u.raw_audio = media_raw_audio_format::wildcard; 62 pInfo->out_formats = pFormat; 63 64 *out_info = pInfo; 65 return B_OK; 66} 67 68BMediaNode* ToneProducerAddOn::InstantiateNodeFor( 69 const flavor_info* info, 70 BMessage* config, 71 status_t* out_error) { 72 73 return new ToneProducer(this); 74} 75 76status_t ToneProducerAddOn::GetConfigurationFor( 77 BMediaNode* your_node, 78 BMessage* into_message) { 79 80 // no config yet 81 return B_OK; 82} 83 84// END -- ToneProducerAddOn.cpp 85