FLmouse

FLmouse — Retourne la position de la souris et l'état de ses trois boutons.

Description

FLmouse retourne les coordonnées de la position de la souris dans un panneau FLTK et l'état de ses trois boutons.

Syntaxe

kx, ky, kb1, kb2, kb3 FLmouse [imode]

Initialisation

imode – (facultatif, 0 par défaut) Détermine la façon de rapporter la position de la souris.

  • 0 - Position absolue normalisée dans l'intervalle 0-1

  • 1 - Position absolue en pixel brut

  • 2 - Position en pixel brut, relative au panneau FLTK

Exécution

kx, ky – les coordonnées de la souris, dont l'intervalle dépend de l'argument imode (voir ci-dessus).

kb1, kb2, kb3 – les états des boutons de la souris, 1 lorsque le bouton correspondant est enfoncé, 0 lorqu'il est relaché.

FLmouse retourne les coordonnées de la position de la souris dans un panneau FLTK et l'état de ses trois boutons. Les coordonnées peuvent être récupérées selon trois modes dépendant de la valeur de l'argument imode (voir ci-dessus). Les modes 0 et 1 retournent la position de la souris par rapport à l'écran complet (mode absolu), tandis que le mode 2 retourne la position en pixels dans un panneau FLTK. Noter que FLmouse n'est actif que lorsque le curseur de la souris se trouve sur une zone FLpanel.

Exemples

Voici un exemple de l'opcode FLmouse. Il utilise le fichier FLmouse.csd.

Exemple 292. Exemple de l'opcode FLmouse.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in    No messages
-odac           -iadc     -d     ;;;RT audio I/O
</CsOptions>
<CsInstruments>

sr=44100
ksmps=128
nchnls=2

;Example by Andres Cabrera 2007
giwidth = 400
giheight = 300
FLpanel "FLmouse", giwidth, giheight, 10, 10
FLpanelEnd

FLrun

0dbfs = 1

instr 1
  kx, ky, kb1, kb2, kb3    FLmouse 2
  ktrig changed kx, ky  ;Print only if coordinates have changed
  printf "kx = %f   ky = %f \n", ktrig, kx, ky
kfreq = ((giwidth - ky)*1000/giwidth) + 300

; y coordinate determines frequency, x coordinate determines amplitude
; Left mouse button (kb1) doubles the frequency
; Right mouse button (kb3) activates sound on channel 2
  aout oscil kx /giwidth , kfreq * (kb1 + 1), 1
  outs aout, aout * kb3
endin

</CsInstruments>
<CsScore>
f 1 0 1024 10 1

i 1 0 120
e

</CsScore>
</CsoundSynthesizer> 


Crédits

Auteur : Gabriel Maldonado

Nouveau dans la version 5.06