1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

refactor(audio): remove obsolete signal "groupAudioPlayed"

This commit is contained in:
Nils Fenner 2016-05-16 14:47:55 +02:00
parent 59352ae797
commit 018360887e
No known key found for this signature in database
GPG Key ID: 9591A163FF9BE04C
3 changed files with 13 additions and 40 deletions

View File

@ -93,7 +93,6 @@ public:
static constexpr uint32_t AUDIO_CHANNELS = 2; static constexpr uint32_t AUDIO_CHANNELS = 2;
signals: signals:
void groupAudioPlayed(int group, int peer, unsigned short volume);
void frameAvailable(const int16_t *pcm, size_t sample_count, uint8_t channels, uint32_t sampling_rate); void frameAvailable(const int16_t *pcm, size_t sample_count, uint8_t channels, uint32_t sampling_rate);
private: private:

View File

@ -140,22 +140,20 @@ GroupNetCamView::GroupNetCamView(int group, QWidget *parent)
splitter->addWidget(scrollArea); splitter->addWidget(scrollArea);
scrollArea->setWidget(widget); scrollArea->setWidget(widget);
connect(&Audio::getInstance(), &Audio::groupAudioPlayed, this, &GroupNetCamView::groupAudioPlayed);
QTimer* timer = new QTimer(this); QTimer* timer = new QTimer(this);
timer->setInterval(1000); timer->setInterval(1000);
connect(timer, &QTimer::timeout, this, &GroupNetCamView::findActivePeer); connect(timer, &QTimer::timeout, this, &GroupNetCamView::onUpdateActivePeer);
timer->start(); timer->start();
connect(Core::getInstance(), &Core::selfAvatarChanged, [this](const QPixmap& pixmap) connect(Core::getInstance(), &Core::selfAvatarChanged, [this](const QPixmap& pixmap)
{ {
selfVideoSurface->getVideoSurface()->setAvatar(pixmap); selfVideoSurface->getVideoSurface()->setAvatar(pixmap);
findActivePeer(); setActive();
}); });
connect(Core::getInstance(), &Core::usernameSet, [this](const QString& username) connect(Core::getInstance(), &Core::usernameSet, [this](const QString& username)
{ {
selfVideoSurface->setText(username); selfVideoSurface->setText(username);
findActivePeer(); setActive();
}); });
connect(Core::getInstance(), &Core::friendAvatarChanged, this, &GroupNetCamView::friendAvatarChanged); connect(Core::getInstance(), &Core::friendAvatarChanged, this, &GroupNetCamView::friendAvatarChanged);
@ -180,7 +178,7 @@ void GroupNetCamView::addPeer(int peer, const QString& name)
peerVideo.video = labeledVideo; peerVideo.video = labeledVideo;
videoList.insert(peer, peerVideo); videoList.insert(peer, peerVideo);
findActivePeer(); setActive();
} }
void GroupNetCamView::removePeer(int peer) void GroupNetCamView::removePeer(int peer)
@ -194,10 +192,15 @@ void GroupNetCamView::removePeer(int peer)
labeledVideo->deleteLater(); labeledVideo->deleteLater();
videoList.remove(peer); videoList.remove(peer);
findActivePeer(); setActive();
} }
} }
void GroupNetCamView::onUpdateActivePeer()
{
setActive();
}
void GroupNetCamView::setActive(int peer) void GroupNetCamView::setActive(int peer)
{ {
if (peer == -1) if (peer == -1)
@ -228,34 +231,6 @@ void GroupNetCamView::setActive(int peer)
} }
} }
void GroupNetCamView::groupAudioPlayed(int Group, int peer, unsigned short volume)
{
if (group != Group)
return;
auto peerVideo = videoList.find(peer);
if (peerVideo != videoList.end())
peerVideo.value().volume = volume;
}
void GroupNetCamView::findActivePeer()
{
int candidate = -1;
int maximum = 0;
for (auto peer = videoList.begin(); peer != videoList.end(); ++peer)
{
if (peer.value().volume > maximum)
{
maximum = peer.value().volume;
candidate = peer.key();
}
}
setActive(candidate);
}
void GroupNetCamView::friendAvatarChanged(int FriendId, const QPixmap &pixmap) void GroupNetCamView::friendAvatarChanged(int FriendId, const QPixmap &pixmap)
{ {
Friend* f = FriendList::findFriend(FriendId); Friend* f = FriendList::findFriend(FriendId);
@ -269,7 +244,7 @@ void GroupNetCamView::friendAvatarChanged(int FriendId, const QPixmap &pixmap)
if (peerVideo != videoList.end()) if (peerVideo != videoList.end())
{ {
peerVideo.value().video->getVideoSurface()->setAvatar(pixmap); peerVideo.value().video->getVideoSurface()->setAvatar(pixmap);
findActivePeer(); setActive();
} }
break; break;

View File

@ -38,17 +38,16 @@ public slots:
void groupAudioPlayed(int group, int peer, unsigned short volume); void groupAudioPlayed(int group, int peer, unsigned short volume);
private slots: private slots:
void findActivePeer(); void onUpdateActivePeer();
void friendAvatarChanged(int FriendId, const QPixmap& pixmap); void friendAvatarChanged(int FriendId, const QPixmap& pixmap);
private: private:
struct PeerVideo struct PeerVideo
{ {
LabeledVideo* video; LabeledVideo* video;
unsigned short volume = 0;
}; };
void setActive(int peer); void setActive(int peer = -1);
QHBoxLayout* horLayout; QHBoxLayout* horLayout;
QMap<int, PeerVideo> videoList; QMap<int, PeerVideo> videoList;