Archivi categoria: Sviluppo

Fado Sound Suite – generatore ed elaboratore di suoni e musica

Fado Sound Suite è un progetto a cui sto lavorando da tempo. In poche parole è un sintetizzatore modulare realizzato con Qt e poche altre librerie. Permette di generare suoni e musica e di applicare effetti sonori in tempo reale. Inoltre sono a disposizione dei moduli per mixare, sempre in tempo reale, i segnali provenienti da file e dal microfono. Può essere quindi utilizzato per registrare un brano sintetizzato, registrare una esecuzione o per applicare degli effetti in tempo reale. Continua la lettura di Fado Sound Suite – generatore ed elaboratore di suoni e musica

Funzione per la codifica dei dati da inviare via HTTP POST

Per gestire le comunicazioni web della propria applicazione viene usata la classe QNetworkAccessManager.

Questa classe possiede ovviamente i metodi necessari per effettuare richieste di tipo GET, POST, PUT e HEAD, ovvero tutto il necessario per gestire con comodità la maggior parte delle comunicazioni via HTTP.

In particolare il metodo post è così definito:

QNetworkReply *	post ( const QNetworkRequest & request, const QByteArray & data )

Curiosamente però, volendolo usare è necessario comporre manualmente il parametro data che, come sappiamo, risulta essere una lista di coppie chiave=valore separate dalla e commerciale &.

Può quindi risultare utile una funzione come questa:

QByteArray NetworkAccessManager::postDataEncoding(ParamHash hash)
{
  QStringList list;
  QHashIterator i(hash);
  while (i.hasNext()) {
    i.next();
    list << i.key()+"="+QUrl::toPercentEncoding(i.value());
  }
  
  return list.join("&").toUtf8();
}

dove ParamHash è semplicemente un hash di stringhe definito in questa maniera:

typedef QHash<QString, QString> ParamHash;