Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : GFA Basic - Programmation du clipboard.device
(Article écrit par Dominique Lorre et extrait d'Amiga News Tech - mai 1990)
|
|
Le clipboard.device est une partie parmi les plus mystérieuses de l'Amiga. Ceci est dû à la grande complexité de
sa mise en oeuvre. Ce périphérique logique pas comme les autres permet aux programmes de s'échanger des données en faisant
du couper/copier/coller (cut/copy/paste en anglais). Tout cela serait très simple si le clipboard.device
n'imposait pas un format des données qu'on lui envoie.
Le format IFF
Ce format est le célèbre format IFF. Cela signifie que dans le clipboard.device, vous pourrez trouver aussi bien
du texte que des images ou du son, à condition que ceux-ci soient placés sous un format IFF. Ceux qui connaissent
bien le format IFF savent qu'il est possible de placer plusieurs types de données les uns à la suite des autres
dans le presse-papiers, rendant la lecture très délicate à effectuer. C'est pourquoi notre exemple de démonstration
ne s'occupe que du minimum, c'est-à-dire lire et écrire du texte dans le presse-papiers. Si une image est
présente dans le presse-papiers, je ne garantis absolument rien !
Gérer le clipboard.device
Quand on sait programmer un des périphériques logiques de l'Amiga, les autres ne posent plus beaucoup de problèmes. Le
clipboard.device est loin d'être aussi compliqué que l'audio,device mais recèle tout de même quelques difficultés.
La première difficulté consiste en la gestion d'un décalage ("offset"). On peut en fait considérer le presse-papiers
comme une bande magnétique. Il est possible avant toute lecture ou écriture de se positionner ailleurs qu'au
début. En lecture, cela permet de ne pas lire entièrement les données d'une image si c'est un texte que
l'on recherche et qu'il est situé après elle. Comprendre cela demande une connaissance minimale de l'IFF.
Un format IFF est repéré par quatre lettres qui sont FORM, CAT ("C","A","T", " ") ou LIST. Les quatre
octets suivants et qui seront représentés par #### donnent la taille des données qui suivent. On peut donc
lire les 12 ou 20 premiers octets du presse-papiers et rechercher du texte.
Il est possible de trouver directement du texte (FORM####FTXT, ce que le programme ci-dessous suppose). Il
est également possible de ne trouver que des données images (FORM####ILBM) : dans ce cas, il y a échec en
lecture. Une troisième possibilité est de rencontrer une image suivie d'un texte (CAT ####ILBMFTXT-FORM####ILBM####).
Dans ce cas, on doit ignorer le FORM###ILBM en se positionnant à sa fin. Le déplacement est calculé avec la
taille inscrite après FORM et effectué en utilisant le décalage.
Une autre difficulté tient dans l'obligation d'envoyer un nombre pair de caractères. Si vous désirez mettre
trois caractères dans le presse-papiers, il vous faudra ajouter un octet nul en tant que pad-byte. Par contre,
la taille indiquée après CHRS ne doit pas tenir compte de cet octet tandis que la taille de la FORM doit en
tenir compte.
Voilà, vous pouvez considérer ce programme comme une introduction à la programmation du clipboard.device. Les
opérations "copier" et "coller" sont présentes. Elles sont très rustiques mais cela vous permettra de mieux
comprendre leur fonctionnement. Cet exemple permettra peut-être à quelques éditeurs de presse-papiers
de voir le jour.
|