/*---------------------------------------------------------------------------- ChucK Concurrent, On-the-fly Audio Programming Language Compiler and Virtual Machine Copyright (c) 2004 Ge Wang and Perry R. Cook. All rights reserved. http://chuck.stanford.edu/ http://chuck.cs.princeton.edu/ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U.S.A.-----------------------------------------------------------------------------*///-----------------------------------------------------------------------------// file: ulib_std.h// desc: standard class library//// author: Ge Wang (ge@ccrma.stanford.edu | gewang@cs.princeton.edu)// date: Spring 2004//-----------------------------------------------------------------------------#ifndef __ULIB_STD_H__#define __ULIB_STD_H__#include "chuck_dl.h"// queryDLL_QUERY libstd_query( Chuck_DL_Query * QUERY );// exportsCK_DLL_SFUN( abs_impl );CK_DLL_SFUN( fabs_impl );CK_DLL_SFUN( rand_impl );CK_DLL_SFUN( randf_impl );CK_DLL_SFUN( rand2f_impl );CK_DLL_SFUN( rand2_impl );CK_DLL_SFUN( srand_impl );CK_DLL_SFUN( sgn_impl );CK_DLL_SFUN( system_impl );CK_DLL_SFUN( atoi_impl );CK_DLL_SFUN( atof_impl );CK_DLL_SFUN( itoa_impl );CK_DLL_SFUN( ftoa_impl );CK_DLL_SFUN( ftoi_impl );CK_DLL_SFUN( getenv_impl );CK_DLL_SFUN( setenv_impl );CK_DLL_SFUN( mtof_impl );CK_DLL_SFUN( ftom_impl );CK_DLL_SFUN( powtodb_impl );CK_DLL_SFUN( rmstodb_impl );CK_DLL_SFUN( dbtopow_impl );CK_DLL_SFUN( dbtorms_impl );CK_DLL_SFUN( dbtolin_impl );CK_DLL_SFUN( lintodb_impl );CK_DLL_SFUN( clamp_impl );CK_DLL_SFUN( clampf_impl );CK_DLL_SFUN( scalef_impl );// forward referenceclass CBufferAdvance;struct ChucK_Object;struct XThread;//-----------------------------------------------------------------------------// name: class KBHit// desc: kbhit class//-----------------------------------------------------------------------------class KBHit : public Chuck_Event{public: KBHit(); ~KBHit();public: t_CKBOOL open(); t_CKBOOL close(); void on(); void off(); t_CKBOOL good() { return m_valid; } t_CKBOOL state() { return m_onoff; }public: void set_echo( t_CKBOOL echo ) { m_echo = echo; } t_CKBOOL get_echo() { return m_echo; }public: t_CKBOOL empty(); t_CKINT getch();public: CBufferAdvance * m_buffer; t_CKUINT m_read_index; t_CKBOOL m_valid; t_CKBOOL m_onoff; t_CKBOOL m_echo; Chuck_Object * SELF;};//-----------------------------------------------------------------------------// name: class KBHitManager// desc: ...//-----------------------------------------------------------------------------class KBHitManager{public: static t_CKBOOL init(); static void shutdown(); static void on(); static void off(); static t_CKBOOL open( KBHit * kb ); static t_CKBOOL close( KBHit * kb );public: static CBufferAdvance * the_buf; static t_CKINT the_onoff; static t_CKBOOL the_init; static XThread * the_thread;};#endif
/*----------------------------------------------------------------------------
ChucK Concurrent, On-the-fly Audio Programming Language
Compiler and Virtual Machine
Copyright (c) 2004 Ge Wang and Perry R. Cook. All rights reserved.
http://chuck.stanford.edu/
http://chuck.cs.princeton.edu/
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
U.S.A.
-----------------------------------------------------------------------------*/
//-----------------------------------------------------------------------------
// file: ulib_std.h
// desc: standard class library
//
// author: Ge Wang (ge@ccrma.stanford.edu | gewang@cs.princeton.edu)
// date: Spring 2004
//-----------------------------------------------------------------------------
#ifndef __ULIB_STD_H__
#define __ULIB_STD_H__
#include "chuck_dl.h"
// query
DLL_QUERY libstd_query( Chuck_DL_Query * QUERY );
// exports
CK_DLL_SFUN( abs_impl );
CK_DLL_SFUN( fabs_impl );
CK_DLL_SFUN( rand_impl );
CK_DLL_SFUN( randf_impl );
CK_DLL_SFUN( rand2f_impl );
CK_DLL_SFUN( rand2_impl );
CK_DLL_SFUN( srand_impl );
CK_DLL_SFUN( sgn_impl );
CK_DLL_SFUN( system_impl );
CK_DLL_SFUN( atoi_impl );
CK_DLL_SFUN( atof_impl );
CK_DLL_SFUN( itoa_impl );
CK_DLL_SFUN( ftoa_impl );
CK_DLL_SFUN( ftoi_impl );
CK_DLL_SFUN( getenv_impl );
CK_DLL_SFUN( setenv_impl );
CK_DLL_SFUN( mtof_impl );
CK_DLL_SFUN( ftom_impl );
CK_DLL_SFUN( powtodb_impl );
CK_DLL_SFUN( rmstodb_impl );
CK_DLL_SFUN( dbtopow_impl );
CK_DLL_SFUN( dbtorms_impl );
CK_DLL_SFUN( dbtolin_impl );
CK_DLL_SFUN( lintodb_impl );
CK_DLL_SFUN( clamp_impl );
CK_DLL_SFUN( clampf_impl );
CK_DLL_SFUN( scalef_impl );
// forward reference
class CBufferAdvance;
struct ChucK_Object;
struct XThread;
//-----------------------------------------------------------------------------
// name: class KBHit
// desc: kbhit class
//-----------------------------------------------------------------------------
class KBHit : public Chuck_Event
{
public:
KBHit();
~KBHit();
public:
t_CKBOOL open();
t_CKBOOL close();
void on();
void off();
t_CKBOOL good() { return m_valid; }
t_CKBOOL state() { return m_onoff; }
public:
void set_echo( t_CKBOOL echo ) { m_echo = echo; }
t_CKBOOL get_echo() { return m_echo; }
public:
t_CKBOOL empty();
t_CKINT getch();
public:
CBufferAdvance * m_buffer;
t_CKUINT m_read_index;
t_CKBOOL m_valid;
t_CKBOOL m_onoff;
t_CKBOOL m_echo;
Chuck_Object * SELF;
};
//-----------------------------------------------------------------------------
// name: class KBHitManager
// desc: ...
//-----------------------------------------------------------------------------
class KBHitManager
{
public:
static t_CKBOOL init();
static void shutdown();
static void on();
static void off();
static t_CKBOOL open( KBHit * kb );
static t_CKBOOL close( KBHit * kb );
public:
static CBufferAdvance * the_buf;
static t_CKINT the_onoff;
static t_CKBOOL the_init;
static XThread * the_thread;
};
#endif