Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}