Device-SaleaeLogic
view release on metacpan or search on metacpan
saleaeinterface.cpp view on Meta::CPAN
l16->RegisterOnReadData(cb_onreaddata, udata);
l16->RegisterOnWriteData(cb_onwritedata, udata);
l16->RegisterOnError(cb_onerror, udata);
} else if (type == SALEAEINTERFACE_LOGIC) {
LogicInterface *l8 = dynamic_cast<LogicInterface *>(iface);
l8->RegisterOnReadData(cb_onreaddata, udata);
l8->RegisterOnWriteData(cb_onwritedata, udata);
l8->RegisterOnError(cb_onerror, udata);
} else {
if (saleaeinterface_internal_verbosity)
fprintf(stderr, "[%s:%d] This is an unsupported device\n",
__func__, __LINE__);
IAMHERE_EXIT;
return;
}
unsigned int val = saleaeinterface_id_map_get(obj->id_map, id);
if (saleaeinterface_internal_verbosity)
fprintf(stderr, "[%s:%d] Device id from SDK: %X from XS: %u\n",
__func__, __LINE__, id, val);
saleaeinterface_internal_on_connect(obj, val);
}
IAMHERE_EXIT;
}
static void cb_ondisconnect(U64 id, void *udata)
{
saleaeinterface_t *obj = (saleaeinterface_t *)udata;
IAMHERE_ENTRY;
saleaeinterface_map_erase(obj->interface_map, id);
saleaeinterface_id_map_erase(obj->interface_map, id);
obj->interface_count = saleaeinterface_map_size(obj->interface_map);
unsigned int val = saleaeinterface_id_map_get(obj->id_map, id);
saleaeinterface_internal_on_disconnect(obj, val);
IAMHERE_EXIT;
}
void saleaeinterface_begin_connect(saleaeinterface_t *obj)
{
IAMHERE_ENTRY;
if (obj && !obj->begun) {
obj->begun = 1;
DevicesManagerInterface::RegisterOnConnect(cb_onconnect, (void *)obj);
DevicesManagerInterface::RegisterOnDisconnect(cb_ondisconnect, (void *)obj);
DevicesManagerInterface::BeginConnect();
}
IAMHERE_EXIT;
}
unsigned int saleaeinterface_isusb2(saleaeinterface_t *obj, unsigned int id)
{
if (obj) {
U64 did = saleaeinterface_id_map_get_id(obj->id_map, id);
GenericInterface *gi = saleaeinterface_map_get(obj->interface_map, did);
if (gi) {
LogicAnalyzerInterface *lai = dynamic_cast<LogicAnalyzerInterface *>(gi);
return lai->IsUsb2pt0() ? 1 : 0;
}
}
return 0;
}
unsigned int saleaeinterface_isstreaming(saleaeinterface_t *obj, unsigned int id)
{
if (obj) {
U64 did = saleaeinterface_id_map_get_id(obj->id_map, id);
GenericInterface *gi = saleaeinterface_map_get(obj->interface_map, did);
if (gi) {
LogicAnalyzerInterface *lai = dynamic_cast<LogicAnalyzerInterface *>(gi);
return lai->IsStreaming() ? 1 : 0;
}
}
return 0;
}
unsigned int saleaeinterface_getchannelcount(saleaeinterface_t *obj, unsigned int id)
{
if (obj) {
U64 did = saleaeinterface_id_map_get_id(obj->id_map, id);
GenericInterface *gi = saleaeinterface_map_get(obj->interface_map, did);
if (gi) {
LogicAnalyzerInterface *lai = dynamic_cast<LogicAnalyzerInterface *>(gi);
return lai->GetChannelCount();
}
}
return 0;
}
unsigned int saleaeinterface_getsamplerate(saleaeinterface_t *obj, unsigned int id)
{
if (obj) {
U64 did = saleaeinterface_id_map_get_id(obj->id_map, id);
GenericInterface *gi = saleaeinterface_map_get(obj->interface_map, did);
if (gi) {
LogicAnalyzerInterface *lai = dynamic_cast<LogicAnalyzerInterface *>(gi);
return lai->GetSampleRateHz();
}
}
return 0;
}
void saleaeinterface_setsamplerate(saleaeinterface_t *obj, unsigned int id, unsigned int rate)
{
if (obj) {
U64 did = saleaeinterface_id_map_get_id(obj->id_map, id);
GenericInterface *gi = saleaeinterface_map_get(obj->interface_map, did);
if (gi) {
LogicAnalyzerInterface *lai = dynamic_cast<LogicAnalyzerInterface *>(gi);
lai->SetSampleRateHz(rate);
}
}
}
int saleaeinterface_getsupportedsamplerates(saleaeinterface_t *obj, unsigned int id,
unsigned int *ptr, unsigned int len)
{
if (obj && ptr) {
U64 did = saleaeinterface_id_map_get_id(obj->id_map, id);
GenericInterface *gi = saleaeinterface_map_get(obj->interface_map, did);
if (gi) {
LogicAnalyzerInterface *lai = dynamic_cast<LogicAnalyzerInterface *>(gi);
S32 rc = lai->GetSupportedSampleRates(ptr, (U32)len);
return (int)rc;
( run in 1.359 second using v1.01-cache-2.11-cpan-39bf76dae61 )