1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-01-19 15:37:01 +01:00

Use SipInfo class

This commit is contained in:
Dominik Schmidt 2012-07-04 15:24:59 +02:00
parent 4973768078
commit 4bc38491e4
6 changed files with 30 additions and 55 deletions

View File

@ -59,10 +59,10 @@ public slots:
void disconnectPlugin();
void configurationChanged();
void sendMsg( const QString& to, const QString& msg )
void sendMsg( const QString& peerId, const SipInfo& info )
{
Q_UNUSED( to );
Q_UNUSED( msg );
Q_UNUSED( peerId );
Q_UNUSED( info );
}
void broadcastMsg( const QString &msg )
@ -70,9 +70,9 @@ public slots:
Q_UNUSED( msg );
}
void addContact( const QString &jid, const QString& msg = QString() )
void addContact( const QString &peerId, const QString& msg = QString() )
{
Q_UNUSED( jid );
Q_UNUSED( peerId );
Q_UNUSED( msg );
}

View File

@ -425,32 +425,17 @@ XmppSipPlugin::errorMessage( Jreen::Client::DisconnectReason reason )
void
XmppSipPlugin::sendMsg( const QString& to, const QString& msg )
XmppSipPlugin::sendMsg( const QString& to, const SipInfo& info )
{
qDebug() << Q_FUNC_INFO << to << msg;
qDebug() << Q_FUNC_INFO << to << info;
if ( !m_client )
return;
/*******************************************************
* Obsolete this by a SipMessage class
*/
QJson::Parser parser;
bool ok;
QVariant v = parser.parse( msg.toAscii(), &ok );
if ( !ok || v.type() != QVariant::Map )
{
qDebug() << "Invalid JSON in Xmpp msg";
return;
}
QVariantMap m = v.toMap();
/*******************************************************/
TomahawkXmppMessage *sipMessage;
if ( m["visible"].toBool() )
if ( info.isVisible() )
{
sipMessage = new TomahawkXmppMessage( m["ip"].toString(), m["port"].toInt(), m["uniqname"].toString(), m["key"].toString() );
sipMessage = new TomahawkXmppMessage( info.host().hostName(), info.port(), info.uniqname(), info.key() );
}
else
sipMessage = new TomahawkXmppMessage();
@ -467,13 +452,6 @@ XmppSipPlugin::sendMsg( const QString& to, const QString& msg )
void
XmppSipPlugin::broadcastMsg( const QString& msg )
{
if ( !m_client )
return;
foreach ( const Jreen::JID& jid, m_peers.keys() )
{
sendMsg( jid.full(), msg );
}
}

View File

@ -86,8 +86,8 @@ public slots:
virtual void disconnectPlugin();
virtual void checkSettings();
virtual void configurationChanged();
virtual void sendMsg( const QString& to, const QString& msg );
virtual void addContact( const QString& jid, const QString& msg = QString() );
virtual void sendMsg( const QString& peerId, const SipInfo& info );
virtual void addContact( const QString& peerId, const QString& msg = QString() );
void broadcastMsg( const QString& msg );
void showAddFriendDialog();

View File

@ -64,7 +64,7 @@ public slots:
void advertise();
void sendMsg( const QString& , const QString& ) {}
void sendMsg( const QString& peerId , const SipInfo& ) {}
void broadcastMsg( const QString & ) {}
void addContact( const QString &, const QString& ) {}

View File

@ -118,50 +118,47 @@ SipHandler::hookUpPlugin( SipPlugin* sip )
void
SipHandler::onPeerOnline( const QString& jid )
SipHandler::onPeerOnline( const QString& peerId )
{
// qDebug() << Q_FUNC_INFO;
tDebug() << "SIP online:" << jid;
tDebug() << "SIP online:" << peerId;
SipPlugin* sip = qobject_cast<SipPlugin*>(sender());
QVariantMap m;
SipInfo info;
if( Servent::instance()->visibleExternally() )
{
QString key = uuid();
ControlConnection* conn = new ControlConnection( Servent::instance(), QString() );
const QString& nodeid = Database::instance()->impl()->dbid();
conn->setName( jid.left( jid.indexOf( "/" ) ) );
conn->setName( peerId.left( peerId.indexOf( "/" ) ) );
conn->setId( nodeid );
Servent::instance()->registerOffer( key, conn );
m["visible"] = true;
m["ip"] = Servent::instance()->externalAddress();
m["port"] = Servent::instance()->externalPort();
m["key"] = key;
m["uniqname"] = nodeid;
info.setVisible( true );
info.setHost( QHostInfo::fromName( Servent::instance()->externalAddress() ) );
info.setPort( Servent::instance()->externalPort() );
info.setKey( key );
info.setUniqname( nodeid );
qDebug() << "Asking them to connect to us:" << m;
tDebug() << "Asking them to connect to us:" << info;
}
else
{
m["visible"] = false;
qDebug() << "We are not visible externally:" << m;
info.setVisible( false );
tDebug() << "We are not visible externally:" << info;
}
QJson::Serializer ser;
QByteArray ba = ser.serialize( m );
sip->sendMsg( jid, QString::fromAscii( ba ) );
sip->sendMsg( peerId, info );
}
void
SipHandler::onPeerOffline( const QString& jid )
SipHandler::onPeerOffline( const QString& peerId )
{
// qDebug() << Q_FUNC_INFO;
qDebug() << "SIP offline:" << jid;
tDebug() << "SIP offline:" << peerId;
}

View File

@ -67,7 +67,7 @@ public slots:
virtual void configurationChanged() = 0;
virtual void addContact( const QString &jid, const QString& msg = QString() ) = 0;
virtual void sendMsg( const QString& to, const QString& msg ) = 0;
virtual void sendMsg( const QString& to, const SipInfo& info ) = 0;
signals:
void peerOnline( const QString& );