ChanInfo類:儲存頻道資訊
::String name;
GnuID id,bcID;
int bitrate;
TYPE contentType;
PROTOCOL srcProtocol;
unsigned int lastPlayStart,lastPlayEnd;
unsigned int numSkips;
unsigned int createdTime;
STATUS status;
TrackInfo track;
::String desc,genre,url,comment;
Channel類:管理具體的頻道操作
THREAD_PROC Channel::stream(ThreadInfo *thread)
ChannelMgr類,它完成頻道建立、管理、尋找、停止等操作
Channel *ChanMgr::createChannel(ChanInfo &info, const char *mount)
void ChanMgr::findAndPlayChannel(ChanInfo &info, bool keep)
ChannelSource負責具體的流傳輸工作,其中定義一個虛方法stream由子類PeercastSource、ICYSource、URLSource實現
virtual void stream(Channel *) = 0;
ChannelHit:維持一份與你收聽同一個頻道的節點的資訊
void ChanHit::pickNearestIP(Host &h)
void ChanHit::initLocal(int numl,int numr,int,int uptm,bool connected,unsigned int oldp,unsigned int newp)
ChannelHitList:維持一份ChannelHit列表
ChanHit *ChanHitList::addHit(ChanHit &h)