#ifndef _HELPER_H_ #define _HELPER_H_ #include "pavucontrol.h" #include #if HAVE_EXT_DEVICE_RESTORE_API # include #endif #include #include #include #include #include struct ProfileEntry { QByteArray id; QStringList tokens; QString getName() const; }; struct ProfileGroup { ProfileGroup() : available(false) {} bool available; QString name; QList entries; QString getProfileName(); void addEntry(const char* id, const char* name); bool containsProfile(const QByteArray &pro) const; }; struct PortInfo { QByteArray name; QByteArray description; uint32_t priority; int available; int direction; int64_t latency_offset; std::vector profiles; }; /* Used for profile sorting */ struct profile_prio_compare { bool operator() (pa_card_profile_info2 const * const lhs, pa_card_profile_info2 const * const rhs) const { if (lhs->priority == rhs->priority) return strcmp(lhs->name, rhs->name) > 0; return lhs->priority > rhs->priority; } }; void populatePorts(const pa_card_info &info, std::map &ports); void groupProfiles(const std::set &profile_priorities, const std::map &ports, QMap &profiles); #endif