packages feed

LslPlus-0.2.0: src/Language/Lsl/Internal/BuiltInModules.hs

{-# OPTIONS_GHC -XQuasiQuotes #-}
module Language.Lsl.Internal.BuiltInModules(avEventGen) where

import Language.Lsl.Syntax
import Language.Lsl.QQ(lslm)

avEventGenAST = [$lslm|$module
        string mkTouch(string primKey, float duration) {
            return "AvatarTouch {avatarTouchPrimKey = \"" + primKey + "\", avatarTouchDuration = " + (string) duration + "}";
        }
        string mkWhisper(integer chan, string message) {
            return "AvatarWhisper { avatarChatChannel = " + (string)chan + ", avatarChatMessage = \"" + message + "\"}";
        }
        string mkSay(integer chan, string message) {
            return "AvatarSay { avatarChatChannel = " + (string)chan + ", avatarChatMessage = \"" + message + "\"}";
        }
        string mkShout(integer chan, string message) {
            return "AvatarShout { avatarChatChannel = " + (string)chan + ", avatarChatMessage = \"" + message + "\"}";
        }
        string mkPay(string primKey, integer amount) {
            return "AvatarPay { avatarPayPrimKey = \"" + primKey + "\", avatarPayAmount = " + (string) amount + "}";
        }
        string mkControl(integer newControlBits) {
            return "AvatarControl { avatarNewControlBits = " + (string) newControlBits + "}";
        }
    |]
    
avEventGen = ("$avEventGen", avEventGenAST)