WIP history

Documento creato ad uso interno.
Perdonate errori ecc... ;-)

2.62 (21.9.2001)
+ Aggiunti gli alias ND e NG per i comandi NODIR e NOGUESS.
+ Aggiunto il supporto di HippoPlayer, che comunque appare alquanto buggoso e
  non capisco se sbaglio qualcosa io o se e' quel programma a essere un
  cesso... ;-(
- Ops, %d non funzionava con DeliTracker...

2.60 (19.9.2001)
+ Implementato il supporto per un nuovo formato di memorizzazione delle
  informazioni sui file MIDI. Ora il file contiene anche il nome del player
  usato, in quanto puo' trattarsi di GMPlay, AMidi o Timidity. WIP NON E'
  PIU' compatibile con il formato precedente.
+ Reimplementato il supporto della sostituzione dell'artista, se non
  disponibile, con la directory nella quale si trova il file. Come prima, e'
  possibile disattivare la funzione con NODIR.
+ Eliminata la procedura getSongDir e sostituite tutte le funzioni che
  effettuavano operazioni similari con filepart() e pathpart() della
  rmh.library. Questo, sommato ad alcune ottimizzazioni, ha ridotto
  notevolmente la dimensione della funzione parseMIDI. In seguito agiremo
  anche su parseMP3...
- Ehm, il placeholder %d non era gestito...
- AMPlifier non restituisce correttamente le ID3 tag in presenza delle stesse
  in versione 2 a inizio file. Aggiunti gli opportuni controlli per evitare
  che WIP vada in errore. (Grazie Shinkuro!).
- Un % alla fine della stringa di configurazione text1 poteva causare errori,
  corretto.

Ed anche AMidi ha il suo script, che esegue PlayMidi. Il funzionamento e' lo
stesso dello script per GMPlay pero' e' stato necessario ricorrere a un
piccolo hack in quanto PlayMIDI non termina appena ricevuto il segnale di
break ma se ne sta un 5 secondi buoni a meditare (e presumo svuotare il
buffer gia' creato). La soluzione? Creare automaticamente uno script che
imposta uma variabile d'ambiente, esegue PlayMidi e al termine
dell'esecuzione azzera la variabile. Start_AMidi.rexx quindi rileva la
variabile, invia il buon ^C a PlayMIDI e aspetta (usando delay() ) finche' la
variabile di servizio non e' scomparsa. Sistema artificioso ma valido, se ne
conoscete uno migliore fatemelo sapere (cosi 'vediamo chi legge questo file
:)

2.50 (15.9.2001) - beta interna
+ Implementato un nuovo sistema di memorizzazione delle preferenze (si veda
  wipcfg.history) che comunque mantiene la compatibilita' con i vecchi file
  (per ora...) e rimossa la definizione di molte impostazioni di default.
+ Aggiunto il supporto per una lista di canali nei quali non inviare i
  messaggi di WIP, che lo si esegua con l'opzione ALL o senza.
+ Con l'aumentare dei placeholder le micro-ottimizzazioni a writeF() non
  bastavano piu': riscritta quindi prepareData() che ora esegue molte meno
  operazioni e solo quando i placeholder specificati sono effettivamente
  presenti. L'unico effetto collaterale e' che non vi possono piu' essere "%"
  nei vari campi. Vedremo in seguito se e' un vero peoblema...
  Fra i pregi della nuova soluzione, oltre ad una migliorata velocita',
  la possibilita' di aggiungere nuovi placeholder senza percettibili
  rallentamenti di WIP.
+ Ottimizzate anche altre parti del programma: evitando di ripetere le
  stesse operazioni piu' volte si velocizza WIP e si appare meno fessi... ;-)
+ Aggiunti i placeholder di tipo "info" e relativa impostazione stlistica.
  I nuovi placeholder sono: %1 per l'ora al posto di %t,
  %2 per la data, %3 per la versione del Kickstart, %4 per la versione
  del Workbench e %5 per la versione di AmIRC).
+ Resi coerenti nello stile i messaggi di errore.
- Ahem, se t:wip_text era assente il programma cercava comunque di
  interpretare i dati normalmente reperiti al suo interno. ;-)

Note: completata l'opera, adesso anche per l'uso di mpega e' presente uno
script ARexx che fa a meno del comando kill di Execute, non richiede l'uso di
una variabile in env: e riduce la moltiplicazione di file nella directory T:.
Ora WIP e' pronto per un rilascio pubblico...

2.32 (4.9.2001)
- I messaggi di errore in caso di assenza di qualche libreria non potevano
  essere visualizzati, mancando la corretta definizione della variabile
  usata per riferirsi ad AmIRC :) Ehm...
+ Ora se la rmh.library non e' disponibile, WIP fornisce l'URL dal quale
  scaricarla con un semplice click (se AmIRC e' configurato come si deve).
- L'ID3 tag relativa all'autore del brano veniva richiesta due volte nella
  funzione di raccolta dati da Amplifier.
+ Aggiunti alcuni controlli sui dati restituiti da Amplifier per aggirare un
  fastidioso baco dello stesso. (Contento, ShInKurO? :)
+ Aggiunta l'opzione QUIET che riduce drasticamente l'output locale di WIP.

2.30 (3.9.2001)
+ Ora anche WIP, come WIPCfg, utilizza (e richiede) la rmh.library per la
  gestione degli argomenti.
+ modificato NOAI in NOGUESS (la vecchia opzione e' supportata per
  compatibilita').
+ Rivoluzionata la visualizzazione dell'output:
  + creata la procedura showData() (la precedente e' stata piu' correttamente
    rinominata prepareData() ).
  + l'output locale e' piu' fedele qualora si usi la modalita' action.
  + l'output su IRC nelle modalita' normale/action/notice e' inviato
    direttamente al server in formato RAW. Cio' consente di specificare il
    canale di destinazione.
  + l'output locale e' visualizzato nelle modalita' normale/action/notice in
    quanto le informazioni inviate come RAW al server non appaiono all'utente
    che le invia.
+ Aggiunta l'opzione ALL che consente di inviare il messaggio di WIP su tutti
  i canali nei quali ci si trova.
+ Aggiunta l'opzione USER (alternativa ad ALL) per inviare il messaggio di
  WIP ad un utente invece che sul canale.
+ Ottimizzata WriteF: ora sara' anche meno elegante e parametrizzata ma
  svolge piu' in fretta il compito per il quale e' pensata in WIP ;-)

2.26 (27.8.2001)
+ Aggiunta l'opzione BEEP per far generare ai client IRC un simpatico segnale
  acustico attiraflame... ;-)

Note: realizzato un nuovo script di lancio GMPlay in Arexx. E' compatibile
con i file midi contenenti caratteri illegali per AmigaOS ed elimina la
necessita' di utilizzare il comando Kill di Execute. Inoltre gestisce piu'
intelligentemente wip_text: il file esistente viene rinominato solo se non e'
possibile scriverci sopra, riducendo quindi lo spreco di RAM nella directory
T:.

2.24 (26.8.2001)
+ Aggiunto il supporto per il nuovo script StartGMplay (ma WIP resta
  compatibile anche col vecchio).
+ Aggiunto il placeholder %h (ora locale).

2.23 (20.8.2001)
+ Modificato la numerazione delle versioni.
- Ops, il workaround per visualizzare sempre correttamente l'autore di un
  brano, anche se composto da numeri, non era applicato anche all'anno.

2.22 (16.8.2001)
- X-Chat (ora disponibile per Win!!!) non azzera il colore del testo dopo un
  highlight presente in una action. Ora WIP provvede a inserire un
  "clear" prima del testo per evitare che la parte iniziale dello stesso
  appaia con un colore differente da quello voluto.
+ Aggiunto il placeholer %n (inserisce il nick dell'utente) e relative
  impostazioni.

2.21 (5.8.2001)
- WIP andava in errore se il file t:wip_text non conteneva dati.
- Lo script start_gmplay andava in errore se nel path corrente esisteva un
  file di nome list. Ora il comando e' cercato in C:


Versione 2.1

0.5  (16.6.2001)
+ Risolto il problema di incompatibilita' con chi usa il nero come sfondo e
  anche con la buggosa gestione dei colori di Amirc 3.2. Ora il codice di
  "clear" e' composto da ^C1 seguito dal reset (^R). Cosi' pare funzionare
  per tutti.
+ Aggiunto il supporto per %p che visualizza il player utilizzato.

0.4  (11.6.2001)
- Un eventuale numero presente nel titolo veniva semre considerato come la
  traccia e rimosso, anche se in effetti era il titolo del brano stesso. Ora
  l'operazione e' svolta solo se il numero e' minore di 20.

0.3  (9.6.2001)
+ Aggiunto un piccolo workaround per visualizzare correttamente gli autori
  che iniziano con un numero anche se subito prima e' presente un codice
  colore. Era cosi' semplice, perche' non ci ho pensato prima? ;-)

0.2  (8.6.2001)
+ Sostituito header_type con header_format.
+ Ora il nome del file di preferenze e' "env:wip.prefs".

0.1  (5.6.2001)
+ Riorganizzata la routine che identifica quale player e' attivo e se sta
  suonando qualcosa.
+ Aggiunto il supporto per Amplifier e DeliTracker.
- Mancava totalmente la gestione dei nomi di MIDI privi di un commento.
+ Ora WIP "skippa" il testo preceduto da " - " presente in un commento
  ed usato da alcuni per inserire note sul brano (ad esempio se e'
  una base, se e' ritmato, ecc).
+ Ora l'opzione NODIR (precedentemente PATH) ha effetto sia per gli
  MP3 che per i MIDI.


Versione 2.0

0.11 (12.7.2000)
+ Reso configurabile il testo visualizzato da WIP tramite l'uso di
  placeholders.
+ Implementata la funzione writeF() che agisce come l'omonima E (e come
  printf() del C).

0.10 (11.7.2000)
- Resa realmente utilizzabile l'opzione DIR.
- Creato uno stem per le preferenze.
- Modificata DIR in PATH e aggiunto NOAI che indica a WIP di non cercare di
  ricavare il nome dell'artista dalla directory in cui si trova il file (solo
  per i file mp3).
- Ora WIP visualizza in locale le impostazioni correnti.

0.9  (4.6.2000)
+ Aggiunti i colori!
  Resi configurabili gli stili delle varie componenti del testo...

0.8  (21.5.2000)
- "(artista)titolo" si mangiava la prima lettera del titolo.
+ Ora gli spazi a inizio e fine titolo vengono sempre eliminati.
+ L'autore non viene mostrato se le prime tre lettere sono 'MP3'.
+ L'eventuale estensione del file viene rimossa dal titolo.
+ Iniziata la riorganizzazione in funzioni del sorgente.


0.7  (26.10.1999)
+ Ora e' supportato correttamente anche il formato
  "nn - titolo". In precedenza nn (numero) veniva interpretato come
  l'artista.


0.6
+ Riorganizzata la gestione dei file midi, ora separata da quella degli altri
  tipi. Se il commento non contiene i dati previsti, vengono usati nome e
  path parziale del file.

  [mp3]

+ In assenza del nome dell'artista, e' possibile usare il
  path parziale del file (indicato come tale e non come 'artista').
+ L'iniziale del nome viene ora convertita sempre in maiuscolo e l'eventuale
  numero di traccia e' rimosso.

  [vari]

+ Aggiunte le opzioni LOCAL (mostra il risultato in locale e non sul canale)
  e DIR (usa il path parziale anche per gli mp3).


0.5  (21.10.1999)
- Se un file privo di tag ID3 si trovava nel path primario di un device,
  l'autore non veniva isolato.
+ Aggiunto il supporto per l'argomento LOCAL che mostra l'output di WIP in
  locale.
+ Ora l'iniziale del titolo viene impostata in maiuscolo per default.


0.4  (28.10.1999)
- WIP generava output anche in assenza del file t:wip_text
- Il song.type 'mpeg' di songplayer non era sempre riconosciuto e sostituito
  dalla stringa 'MPEG audio'.
- In assenza di tag ID3:
  - file presenti in un path privo di '/' non erano visualizzati
    correttamente.
  + ora se l'artista e' presente nel nome del file il campo song.artist viene
    riempito correttamente.
  + ora sono supportati anche i nomi contenenti:
    "(artista) titolo" e "nn - artista - titolo"
- Rimossa l'identificazione di 'genre', 'album' e 'comment' visto che si
  tratta di campi non piu' in uso.
