Changeset 1776 for trunk/libffado/src/dice/dice_eap.h
- Timestamp:
- 01/02/10 15:07:26 (14 years ago)
- Files:
-
- trunk/libffado/src/dice/dice_eap.h (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/dice/dice_eap.h
r1772 r1776 223 223 virtual void show(); 224 224 225 226 225 bool insertRoute(struct Route r) 227 226 {return insertRoute(r, m_routes.size());}; … … 367 366 */ 368 367 class Router : public Control::CrossbarRouter { 369 private:370 struct Source {371 std::string name;372 enum eRouteSource src;373 int srcChannel;374 };375 typedef std::vector<Source> SourceVector;376 typedef std::vector<Source>::iterator SourceVectorIterator;377 378 struct Destination {379 std::string name;380 enum eRouteDestination dst;381 int dstChannel;382 };383 typedef std::vector<Destination> DestinationVector;384 typedef std::vector<Destination>::iterator DestinationVectorIterator;385 386 368 public: 387 369 Router(EAP &); … … 390 372 void show(); 391 373 392 void setupDestinationsAddDestination(const char *name, enum eRouteDestination dstid, 393 unsigned int base, unsigned int cnt); 394 void setupSourcesAddSource(const char *name, enum eRouteSource srcid, 395 unsigned int base, unsigned int cnt); 396 397 int getDestinationIndex(enum eRouteDestination dstid, int channel); 398 int getSourceIndex(enum eRouteSource srcid, int channel); 374 void addDestination(const std::string& name, enum eRouteDestination dstid, 375 unsigned int base, unsigned int cnt, unsigned int offset=0); 376 void addSource(const std::string& name, enum eRouteSource srcid, 377 unsigned int base, unsigned int cnt, unsigned int offset=0); 399 378 400 379 // per-coefficient access … … 403 382 virtual int getSourceIndex(std::string); 404 383 virtual int getDestinationIndex(std::string); 405 virtual NameVector getSourceNames(); 406 virtual NameVector getDestinationNames(); 407 408 virtual Control::CrossbarRouter::Groups getSources(); 409 virtual Control::CrossbarRouter::Groups getDestinations(); 410 411 virtual IntVector getDestinationsForSource(const int); 412 virtual int getSourceForDestination(const int); 413 414 virtual bool canConnect( const int source, const int dest); 415 virtual bool setConnectionState( const int source, const int dest, const bool enable); 416 virtual bool getConnectionState( const int source, const int dest ); 417 418 virtual bool canConnect(std::string, std::string); 419 virtual bool setConnectionState(std::string, std::string, const bool enable); 420 virtual bool getConnectionState(std::string, std::string); 384 virtual stringlist getSourceNames(); 385 virtual stringlist getDestinationNames(); 386 387 std::string getSourceForDestination(const std::string& dstname); 388 stringlist getDestinationsForSource(const std::string& srcname); 389 390 virtual bool canConnect(const int srcidx, const int dstidx); 391 virtual bool setConnectionState(const int srcidx, const int dstidx, const bool enable); 392 virtual bool getConnectionState(const int srcidx, const int dstidx); 393 394 virtual bool canConnect(const std::string& srcname, const std::string& dstname); 395 virtual bool setConnectionState(const std::string& srcname, const std::string& dstname, const bool enable); 396 virtual bool getConnectionState(const std::string& srcname, const std::string& dstname); 421 397 422 398 virtual bool clearAllConnections(); 423 424 virtual int getNbSources();425 virtual int getNbDestinations();426 427 // functions to access the entire routing map at once428 // idea is that the row/col nodes that are 1 get a routing entry429 virtual bool getConnectionMap(int *);430 virtual bool setConnectionMap(int *);431 399 432 400 // peak metering support 433 401 virtual bool hasPeakMetering(); 434 virtual bool getPeakValues(double &) {return false;}; 435 virtual double getPeakValue(const int source, const int dest); 436 virtual Control::CrossbarRouter::PeakValues getPeakValues(); 402 virtual double getPeakValue(const std::string& dest); 403 virtual std::map<std::string, double> getPeakValues(); 437 404 438 405 private: 439 406 EAP &m_eap; 440 // these contain the sources and destinations available for this 441 // router 442 SourceVector m_sources; 443 DestinationVector m_destinations; 407 /** 408 @{ 409 @brief Name-Index pairs for the sources and destinations 410 411 The index is 'artificial' and is the block/channel combination used in the dice. 412 */ 413 std::map<std::string, int> m_sources; 414 std::map<std::string, int> m_destinations; 415 // @} 444 416 445 417 PeakSpace &m_peak; … … 528 500 @brief Actually add the source 529 501 */ 530 void addSource( const std::string name, enum eRouteSource srcid,531 unsigned int base, unsigned int count);502 void addSource(const std::string name, unsigned int base, unsigned int count, 503 enum eRouteSource srcid, unsigned int offset=0); 532 504 /** 533 505 @brief Actually add the destination 534 506 */ 535 void addDestination( const std::string name, enum eRouteDestination destid,536 unsigned int base, unsigned int count);507 void addDestination(const std::string name, unsigned int base, unsigned int count, 508 enum eRouteDestination destid, unsigned int offset=0); 537 509 538 510 private: