## ConditionalReader

`ConditionalReader` (clip, string filename, string variablename, bool "show")

`ConditionalReader` consente di importare informazioni da un text file, con valori diversi per ogni frame o per ogni range di frames.

### Parametri

Parameter | Description | Default
clip | E' l'input clip. Non viene toccato a meno che non si specifichi show=true. | Obbligatorio
filename | Il file contenente le variabili che si vogliopno impostare. | Obbligatorio
variablename | Nome della variabile in cui si vogliono memorizzare le informazioni. | Obbligatorio
show | Quando impostato a true, il valore attribuito al frame verrà sovrapposto all'immagine. | false

### File format

Il file è un file di testo. Tutte le separazioni sono costituite da spazi, e newline indica un nuovo data set. NON è case sensitive!
TYPE (int|float|bool)

Si può avere un solo tipo di dati in ogni file. Al momento è possibile avere valori float, int o bool . Il tutto viene specificato tramite la keyword TYPE . In ogni caso si deve iniziare specificando il tipo di dati, visto che nulla viene salvato fintantochè tale variabile non è stata trovata . Non è possibile cambiare il tipo d data una volta che questo è stato impostato!

DEFAULT <value>

Specifica il valore di default per tutti i frames. Si deve impostare subito dopo il type visto che sovrascrive tutti i frames definiti. Se si omette, bisogna essere sicuri di specificare un valore per ogni frame, altrimenti si otterrebero dei risultati non voluti.

<framenumber> <value>

Imposta il valore SOLO per il frame<framenumber>.

R <startframe> <endframe> <value>

Applica un valore ad un range di frames. Da notare che sono compresi sia il frame start CHE end-frame.

I <startframe> <endframe> <startvalue> <stopvalue>

Interpola tra due valori un range di frames. Funziona solo con valori int e float. Da notare che sono compresi sia il frame start CHE end-frame.

### Types

Come detto types può essere float, int obool.
Int è un numero opzionalmente preceduto dal segno.
Float è un numero decimale contenente un punto decimale opzionalmente preceduto dal segno ed opzionalmente seguito dal caretter e o E e da un numero decimale. Valori validi sono -732.103 o 7.12e4.
Bool può essere true o false.

### Esempi

#### Basic usage

File.txt:

    Type float
    Default 3.45567

    R 45 300 76.5654
    2 -671.454
    72 -671.454

Il file precedente restituisce valori float. Di default restituisce 3.45567. Tuttavia per i frames da 45 a 300 restituisce 76.5654. E per i frames 2 e 72 -671.454.
Come si può notare, le modifiche successive prevalgono sulle impostazioni date in precedenza. Questo è evidenziato dal frame '72' - che sebbene all'interno del range 45-300, restituisce l'ultimo valore. D'altra parte - se il range fose stato specificato DOPO '72 -671.454' - avrebbe restituito il valore 76.5654.
Uno script per richiamare questo file potrebbe essere:

    colorbars(512,512)
    trim(0,500)
    ScriptClip("subtitle(string(myvar))")
    ConditionalReader("file.txt", "myvar", false)

Questo carica i valori nella variabile chiamata"myvar", che è usata da Subtitle, attivata da ScriptClip per mostrare la "conditional value".

#### Adjusting Overlay

AviSynth script:

    colorbars(512,256)
    a1 = trim(0,600)
    a2 = MessageClip("Text clip")
    overlay(a1,a2, y = 100, x = 110, mode="subtract", opacity=0, pc_range=true)
    ConditionalReader("opacity.txt", "ol_opacity_offset", false)
    ConditionalReader("xoffset.txt", "ol_x_offset", false)

xoffset.txt:

    Type int
    Default -50

    I 25 50 -50 100
    R 50 250 100
    I 250 275 100 250

opacity.txt:

    Type float
    Default 0.0

    I 25 50 0.0 1.0
    R 50 250 1.0
    I 250 275 1.0 0.0

Sostanzialmente definisce keyframes per x-offset e per opacity. Per i frames 25->50 opacity è scalata da 0.0 a 1.0, mentre il testo si sta muovendo da sinistra a destra. Il testo è quindi mantenuto stabile dal frame 50 al 250, in seguito si muove ulteriormente verso destra con una dissolvenza.
E' molto più facile verificare visivamente il clip che descriverlo.

`$Date: 2004/09/26 19:49:40 $`