// Called in ISR context // Set configuration. Return false if the // configuration is not supported. bool USBMIDI::USBCallback_setConfiguration(uint8_t configuration) { if (configuration != DEFAULT_CONFIGURATION) { return false; } // Configure endpoints > 0 addEndpoint(EPBULK_IN, MAX_PACKET_SIZE_EPBULK); addEndpoint(EPBULK_OUT, MAX_PACKET_SIZE_EPBULK); // We activate the endpoint to be able to receive data readStart(EPBULK_OUT, MAX_PACKET_SIZE_EPBULK); return true; }
// Called in ISR context // Set configuration. Return false if the // configuration is not supported. bool USBMSD::USBCallback_setConfiguration(uint8_t configuration) { if (configuration != DEFAULT_CONFIGURATION) { return false; } // Configure endpoints > 0 addEndpoint(EPBULK_IN, MAX_PACKET_SIZE_EPBULK); addEndpoint(EPBULK_OUT, MAX_PACKET_SIZE_EPBULK); //activate readings readStart(EPBULK_OUT, MAX_PACKET_SIZE_EPBULK); return true; }
bool RJBaseUSBDevice::USBCallback_setConfiguration(uint8_t configuration) { LOG(INIT, "RJBaseUSBDevice::USBCallback_setConfiguration() called"); // Configuration 1 is our only configuration if (configuration != 1) return false; addEndpoint(EPBULK_OUT, MAX_PACKET_SIZE_EPBULK); addEndpoint(EPBULK_IN, MAX_PACKET_SIZE_EPBULK); // activate the endpoint to be able to recceive data readStart(EPBULK_OUT, MAX_PACKET_SIZE_EPBULK); return true; }
/* makeMultiSpline: * FIX: we don't really use the shortest path provided by ED_path, * so avoid in neato spline code. * Return 0 on success. */ int makeMultiSpline(graph_t* g, edge_t* e, router_t * rtr, int doPolyline) { Ppolyline_t line = ED_path(e); node_t *t = agtail(e); node_t *h = aghead(e); pointf t_p = line.ps[0]; pointf h_p = line.ps[line.pn - 1]; tripoly_t *poly; int idx; int *sp; int t_id = rtr->tn; int h_id = rtr->tn + 1; int ecnt = rtr->tg->nedges; PPQ pq; PQTYPE *idxs; PQVTYPE *vals; int ret; /* Add endpoints to triangle graph */ addEndpoint(rtr, t_p, t, t_id, ED_tail_port(e).side); addEndpoint(rtr, h_p, h, h_id, ED_head_port(e).side); /* Initialize priority queue */ PQgen(&pq.pq, rtr->tn + 2, -1); idxs = N_GNEW(pq.pq.PQsize + 1, PQTYPE); vals = N_GNEW(pq.pq.PQsize + 1, PQVTYPE); vals[0] = 0; pq.vals = vals + 1; pq.idxs = idxs + 1; /* Find shortest path of triangles */ sp = triPath(rtr->tg, rtr->tn+2, h_id, t_id, (PQ *) & pq); free(vals); free(idxs); PQfree(&(pq.pq), 0); /* Use path of triangles to generate guiding polygon */ poly = mkPoly(rtr, sp, h_id, t_id, h_p, t_p, &idx); free(sp); /* Generate multiple splines using polygon */ ret = genroute(g, poly, 0, idx, e, doPolyline); freeTripoly (poly); resetGraph(rtr->tg, rtr->tn, ecnt); return ret; }
/*private*/ bool IsSimpleOp::hasClosedEndpointIntersection(GeometryGraph &graph) { map<const Coordinate*,EndpointInfo*,CoordinateLessThen> endPoints; vector<Edge*> *edges=graph.getEdges(); for (vector<Edge*>::iterator i=edges->begin();i<edges->end();i++) { Edge *e=*i; //int maxSegmentIndex=e->getMaximumSegmentIndex(); bool isClosed=e->isClosed(); const Coordinate *p0=&e->getCoordinate(0); addEndpoint(endPoints,p0,isClosed); const Coordinate *p1=&e->getCoordinate(e->getNumPoints()-1); addEndpoint(endPoints,p1,isClosed); } map<const Coordinate*,EndpointInfo*,CoordinateLessThen>::iterator it=endPoints.begin(); for (; it!=endPoints.end(); ++it) { EndpointInfo *eiInfo=it->second; if (eiInfo->isClosed && eiInfo->degree!=2) { nonSimpleLocation.reset( new Coordinate( eiInfo->getCoordinate() ) ); it=endPoints.begin(); for (; it!=endPoints.end(); ++it) { EndpointInfo *ep=it->second; delete ep; } return true; } } it=endPoints.begin(); for (; it!=endPoints.end(); ++it) { EndpointInfo *ep=it->second; delete ep; } return false; }