Autore Topic: [RISOLTO] trovare la cover art di un brano  (Letto 1561 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:trovare la cover art di un brano
« Risposta #15 il: 16 Novembre 2017, 18:47:25 »

Extern FetchImage(id As String) As Picture  'la funzione C++ sarebbe std::vector<unsigned char> ImageData=CoverArt.FetchImage(ReleaseID,Image->ID());

In quale file header sta dichiarato questo prototipo della funzione esterna ?     ???
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:trovare la cover art di un brano
« Risposta #16 il: 16 Novembre 2017, 18:55:44 »
Ad ogni modo la libreria che dovresti usare è questa:

/usr/lib/x86_64-linux-gnu/libcoverart.so.1.0.0


Il file d'intestazione contenente le varie funzioni scritte in C è il seguente:

/usr/include/coverart/caa_c.h
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:trovare la cover art di un brano
« Risposta #17 il: 16 Novembre 2017, 18:59:38 »
allora forse dovrei usare:
Extern caa_coverart_fetch_front(CaaCoverArt CoverArt, const char * ReleaseID);
Eh, ...appunto !




ma come gli passo la chiave? come recupero l'imamgine?
Extern caa_coverart_fetch_front(CoverArt As Picture, ReleaseID As String)

...e che ne so io ?   :rotfl:


Ho trovato 'sto esempio (non so se ti può essere utile  :-\ ):
https://github.com/metabrainz/libcoverart/blob/master/examples/example_c.c
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:trovare la cover art di un brano
« Risposta #18 il: 16 Novembre 2017, 19:09:15 »
Extern caa_coverart_fetch_front(CoverArt As Picture, ReleaseID As String)

Attenzione: il C è una cosa e Gambas è un'altra cosa.
Il C non conosce il tipo "Picture".

Il prototipo di questa funzione esterna è:

CaaImageData caa_coverart_fetch_front(CaaCoverArt CoverArt, const char *ReleaseID)

laddove:

- CaaCoverArt  è dichiarato come un Puntatore generico (a void);
- const char * è sostanzialmente quello che in Gambas chiamiamo tipo "String";
- CaaImageData  è dichiarato come un Puntatore generico (a void).


La variabile di tipo Puntatore presente nel primo parametro formale (ossia: CaaCoverArt CoverArt) la ottieni - preliminarmente - da quest'altra funzione esterna:
CaaCoverArt caa_coverart_new(const char *UserAgent)
« Ultima modifica: 16 Novembre 2017, 19:15:05 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:trovare la cover art di un brano
« Risposta #19 il: 17 Novembre 2017, 20:44:54 »
allora, con l'aiuto di un simpatico utente di musicBrainz (nell'apposito forum), sono riuscito un'altra volta a non cedere alle lusinghe del C e del buon Vuott (che ci mete il cuore lo so  a cercare di farmi imparare :D).

Il trucco era analizzare gli HEADER del socket HTTP.

in caso di temporary redirect (307, ma a me spesso da anche un 302) il sito ritorna la posizione reale di stoccaggio della copertina ....

In allegato il progetto didattico (nella realta' verra' generato l'evento e tutto andra' in cascata).

grazie :D
« Ultima modifica: 20 Novembre 2017, 19:07:02 da allegfede »
se corri, morirai stanco (motto degli sniper)