BParameterWeb* ESDSinkNode::MakeParameterWeb() { CALLED(); BParameterWeb* web = new BParameterWeb; BParameterGroup *group = web->MakeGroup("Server"); BParameter *p; // XXX: use B_MEDIA_UNKNOWN_TYPE or _NO_TYPE ? // keep in sync with enum { PARAM_* } ! p = group->MakeDiscreteParameter(PARAM_ENABLED, B_MEDIA_RAW_AUDIO, "Enable", B_ENABLE); #if defined(B_BEOS_VERSION_DANO) || defined(__HAIKU__) p = group->MakeTextParameter(PARAM_HOST, B_MEDIA_RAW_AUDIO, "Hostname", B_GENERIC, 128); p = group->MakeTextParameter(PARAM_PORT, B_MEDIA_RAW_AUDIO, "Port", B_GENERIC, 16); #endif return web; }
void VideoProducer::NodeRegistered() { if (fInitStatus != B_OK) { ReportError(B_NODE_IN_DISTRESS); return; } /* Set up the parameter web */ //TODO: remove and put sensible stuff there BParameterWeb *web = new BParameterWeb(); BParameterGroup *main = web->MakeGroup(Name()); BParameterGroup *g; /* g = main->MakeGroup("Color"); BDiscreteParameter *state = g->MakeDiscreteParameter( P_COLOR, B_MEDIA_RAW_VIDEO, "Color", "Color"); state->AddItem(B_HOST_TO_LENDIAN_INT32(0x00ff0000), "Red"); state->AddItem(B_HOST_TO_LENDIAN_INT32(0x0000ff00), "Green"); state->AddItem(B_HOST_TO_LENDIAN_INT32(0x000000ff), "Blue"); */ BParameter *p; g = main->MakeGroup("Info"); p = g->MakeTextParameter( P_INFO, B_MEDIA_RAW_VIDEO, "", "Info", 256); int32 id = P_LAST; if (fCamDevice) { #ifndef SINGLE_PARAMETER_GROUP main = web->MakeGroup("Device"); #endif fCamDevice->AddParameters(main, id); if (fCamDevice->Sensor()) { #ifndef SINGLE_PARAMETER_GROUP main = web->MakeGroup("Sensor"); #endif fCamDevice->Sensor()->AddParameters(main, id); } } fColor = B_HOST_TO_LENDIAN_INT32(0x00ff0000); fLastColorChange = system_time(); /* After this call, the BControllable owns the BParameterWeb object and * will delete it for you */ SetParameterWeb(web); fOutput.node = Node(); fOutput.source.port = ControlPort(); fOutput.source.id = 0; fOutput.destination = media_destination::null; strcpy(fOutput.name, Name()); /* Tailor these for the output of your device */ fOutput.format.type = B_MEDIA_RAW_VIDEO; fOutput.format.u.raw_video = media_raw_video_format::wildcard; fOutput.format.u.raw_video.interlace = 1; fOutput.format.u.raw_video.display.format = B_RGB32; fOutput.format.u.raw_video.field_rate = FIELD_RATE; // XXX: mmu /* Start the BMediaEventLooper control loop running */ Run(); }