-- | Table Queries
module CsoundExpr.Opcodes.Table.Queries
    (ftchnls,
     ftlen,
     ftlptim,
     ftsr,
     nsamp,
     tablengI,
     tablengK)
where



import CsoundExpr.Base.Types
import CsoundExpr.Base.MultiOut
import CsoundExpr.Base.SideEffect
import CsoundExpr.Base.UserDefined



-- | * opcode : ftchnls
--  
--  
-- * syntax : 
--  
--  >   ftchnls(x) (init-rate args only)
--  
--  
-- * description : 
--  
--  Returns the number of channels in a stored function table.
--  
--  
-- * url : <http://www.csounds.com/manual/html/ftchnls.html>
 
ftchnls :: Irate -> Irate
ftchnls i0sig = prefixOperation "ftchnls" args
  where args = [to i0sig]


-- | * opcode : ftlen
--  
--  
-- * syntax : 
--  
--  >   ftlen(x) (init-rate args only)
--  
--  
-- * description : 
--  
--  Returns the size of a stored function table.
--  
--  
-- * url : <http://www.csounds.com/manual/html/ftlen.html>
 
ftlen :: Irate -> Irate
ftlen i0sig = prefixOperation "ftlen" args
  where args = [to i0sig]


-- | * opcode : ftlptim
--  
--  
-- * syntax : 
--  
--  >   ftlptim(x) (init-rate args only)
--  
--  
-- * description : 
--  
--  Returns the loop segment start-time of a stored function table
-- number.
--  
--  
-- * url : <http://www.csounds.com/manual/html/ftlptim.html>
 
ftlptim :: Irate -> Irate
ftlptim i0sig = prefixOperation "ftlptim" args
  where args = [to i0sig]


-- | * opcode : ftsr
--  
--  
-- * syntax : 
--  
--  >   ftsr(x) (init-rate args only)
--  
--  
-- * description : 
--  
--  Returns the sampling-rate of a stored function table.
--  
--  
-- * url : <http://www.csounds.com/manual/html/ftsr.html>
 
ftsr :: Irate -> Irate
ftsr i0sig = prefixOperation "ftsr" args
  where args = [to i0sig]


-- | * opcode : nsamp
--  
--  
-- * syntax : 
--  
--  >   nsamp(x) (init-rate args only)
--  
--  
-- * description : 
--  
--  Returns the number of samples loaded into a stored function
-- table number.
--  
--  
-- * url : <http://www.csounds.com/manual/html/nsamp.html>
 
nsamp :: Irate -> Irate
nsamp i0sig = prefixOperation "nsamp" args
  where args = [to i0sig]


-- | * opcode : tableng
--  
--  
-- * syntax : 
--  
--  >   ires tableng ifn
--  >   kres tableng kfn
--  
--  
-- * description : 
--  
--  Interrogates a function table for length.
--  
--  
-- * url : <http://www.csounds.com/manual/html/tableng.html>
 
tablengI :: Irate -> Irate
tablengI i0fn = opcode "tableng" args
  where args = [to i0fn]


-- | * opcode : tableng
--  
--  
-- * syntax : 
--  
--  >   ires tableng ifn
--  >   kres tableng kfn
--  
--  
-- * description : 
--  
--  Interrogates a function table for length.
--  
--  
-- * url : <http://www.csounds.com/manual/html/tableng.html>
 
tablengK :: (K k0) => k0 -> Krate
tablengK k0fn = opcode "tableng" args
  where args = [to k0fn]