NS_IMETHODIMP nsHTMLAudioElement::MozSetup(PRUint32 aChannels, PRUint32 aRate) { // If there is already a src provided, don't setup another stream if (mDecoder) { return NS_ERROR_FAILURE; } // MozWriteAudio divides by mChannels, so validate now. if (0 == aChannels) { return NS_ERROR_FAILURE; } if (mAudioStream) { mAudioStream->Shutdown(); } mAudioStream = new nsAudioStream(); nsresult rv = mAudioStream->Init(aChannels, aRate, nsAudioStream::FORMAT_FLOAT32); if (NS_FAILED(rv)) { mAudioStream->Shutdown(); mAudioStream = nsnull; return rv; } MetadataLoaded(aChannels, aRate); mAudioStream->SetVolume(mVolume); return NS_OK; }
bool CTorrent::TryInstallMetadata() { if(m_MetadataExchange && m_MetadataExchange->NewData) { m_MetadataExchange->NewData = false; QByteArray Payload = TryAssemblyMetadata(); if(!Payload.isEmpty()) { if(!m_TorrentInfo->LoadMetadata(Payload)) { LogLine(LOG_DEBUG | LOG_ERROR, tr("The torrent metadata for %1 (%2) cannot not be parsed.").arg(GetFile()->GetFileName()).arg(QString(m_TorrentInfo->GetInfoHash().toHex()))); // that is not recoverable!!!! GetFile()->GetInspector()->BlackListHash(GetHash()); // Note: This will delete this return false; } else { LogLine(LOG_DEBUG | LOG_SUCCESS, tr("recived metadata for torrent %1 (%2)").arg(GetFile()->GetFileName()).arg(QString(m_TorrentInfo->GetInfoHash().toHex()))); if(!GetFile()->IsPending()) SaveTorrentToFile(); if(!InstallMetadata()) // Note: This can delete this return false; emit MetadataLoaded(); } delete m_MetadataExchange; m_MetadataExchange = NULL; return true; } } return true; }