- Blender.Window: added function GetPerspMatrix() (Tom Musgrave's patch, thanks);
- added Chris Want's patch to tell argc, argv to the Python interpreter (thanks, Hos);
- Blender.Image: added image.glFree() to free textures bound by the recently added
  image.glLoad() (both suggested by Campbell Barton -- thanks, with these Blender can
  be used to load textures for scripts);
- Blender.Sound: removed for now at least a few get/set methods of vars that can't be
  accessed via interface;
- renamed Get/makeActive to Get/setCurrent in Blender.World (actually added alias for
  now), same in Blender.Sound: renamed makeActive to setCurrent.  Stephen Swaney
  pointed this some weeks ago, we should stick to one naming convention.
- added documentation for Sound and Window.Theme modules and the other added
  functions, made other small updates.
- Blender.Object: made 'worldspace' become the default output of .getMatrix and .mat/.matrix:
  after reading a discussion on blender.org's Python forum where eeshlo mentioned the
  pre 2.34 default was worldspace, I took a better look at Blender's relevant code,
  confirmed, talked to Theeth about this and as he suggested am changing the default
  back to 'worldspace'.
This commit is contained in:
2004-10-20 05:51:24 +00:00
parent f2f004af2d
commit fa9135385a
18 changed files with 535 additions and 101 deletions

View File

@@ -48,11 +48,16 @@
/* Python BPy_Sound defaults: */
/*****************************************************************************/
#define EXPP_SND_volume_MIN 0.0
#define EXPP_SND_volume_MAX 1.0
#define EXPP_SND_pitch_MIN -12.0
#define EXPP_SND_pitch_MAX 12.0
#define EXPP_SND_attenuation_MIN 0.0
#define EXPP_SND_attenuation_MAX 5.0
/*****************************************************************************/
/* Python API function prototypes for the Sound module. */
/*****************************************************************************/
static PyObject *M_Sound_New( PyObject * self, PyObject * args,
PyObject * keywords );
static PyObject *M_Sound_Get( PyObject * self, PyObject * args );
static PyObject *M_Sound_Load( PyObject * self, PyObject * args );
@@ -63,26 +68,20 @@ static PyObject *M_Sound_Load( PyObject * self, PyObject * args );
/************************************************************************/
static char M_Sound_doc[] = "The Blender Sound module\n\n";
static char M_Sound_New_doc[] =
"() - return a new Sound object -- unimplemented";
static char M_Sound_Get_doc[] =
"(name) - return the sound with the name 'name', \
returns None if not found.\n If 'name' is not specified, \
it returns a list of all sounds in the\ncurrent scene.";
static char M_Sound_Load_doc[] =
"(filename, redraw = 0) - return sound from file filename as Sound Object,\n\
"(filename) - return sound from file filename as a Sound Object,\n\
returns None if not found.";
/*****************************************************************************/
/* Python method structure definition for Blender.Sound module: */
/*****************************************************************************/
struct PyMethodDef M_Sound_methods[] = {
{"New", ( PyCFunction ) M_Sound_New, METH_VARARGS | METH_KEYWORDS,
M_Sound_New_doc},
{"Get", M_Sound_Get, METH_VARARGS, M_Sound_Get_doc},
{"get", M_Sound_Get, METH_VARARGS, M_Sound_Get_doc},
{"Load", M_Sound_Load, METH_VARARGS, M_Sound_Load_doc},
{NULL, NULL, 0, NULL}
};
@@ -109,7 +108,8 @@ static PyObject *Sound_set ## funcname(BPy_Sound *self, PyObject *args) { \
if (!PyArg_ParseTuple(args, "f", &f)) \
return (EXPP_ReturnPyObjError (PyExc_TypeError, \
"expected float argument")); \
self->sound->varname = f; \
self->sound->varname = EXPP_ClampFloat(f,\
EXPP_SND_##varname##_MIN, EXPP_SND_##varname##_MAX);\
Py_INCREF(Py_None); \
return Py_None; \
}
@@ -127,14 +127,18 @@ static PyObject *Sound_set ## funcname(BPy_Sound *self, PyObject *args) { \
static PyObject *Sound_getName( BPy_Sound * self );
static PyObject *Sound_getFilename( BPy_Sound * self );
static PyObject *Sound_play( BPy_Sound * self );
static PyObject *Sound_makeActive( BPy_Sound * self );
static PyObject *Sound_setCurrent( BPy_Sound * self );
//static PyObject *Sound_reload ( BPy_Sound * self );
SOUND_FLOAT_METHODS( Volume, volume )
SOUND_FLOAT_METHODS( Panning, panning )
SOUND_FLOAT_METHODS( Attenuation, attenuation )
SOUND_FLOAT_METHODS( Pitch, pitch )
SOUND_FLOAT_METHODS( MinGain, min_gain )
SOUND_FLOAT_METHODS( MaxGain, max_gain )
SOUND_FLOAT_METHODS( Distance, distance )
SOUND_FLOAT_METHODS( Attenuation, attenuation )
SOUND_FLOAT_METHODS( Pitch, pitch )
/* these can't be set via interface, removed for now */
/*
SOUND_FLOAT_METHODS( Panning, panning )
SOUND_FLOAT_METHODS( MinGain, min_gain )
SOUND_FLOAT_METHODS( MaxGain, max_gain )
SOUND_FLOAT_METHODS( Distance, distance )
*/
/*****************************************************************************/
/* Python BPy_Sound methods table: */
@@ -147,15 +151,21 @@ static PyMethodDef BPy_Sound_methods[] = {
"() - Return Sound object filename"},
{"play", ( PyCFunction ) Sound_play, METH_NOARGS,
"() - play this sound"},
{"makeActive", ( PyCFunction ) Sound_makeActive, METH_NOARGS,
{"setCurrent", ( PyCFunction ) Sound_setCurrent, METH_NOARGS,
"() - make this the active sound in the sound buttons win (also redraws)"},
//{"reload", ( PyCFunction ) Sound_setCurrent, METH_NOARGS,
//"() - reload this Sound object's sample.\n\
//This is only useful if the original sound file has changed."},
SOUND_FLOAT_METHOD_FUNCS( Volume )
SOUND_FLOAT_METHOD_FUNCS( Panning )
SOUND_FLOAT_METHOD_FUNCS( Attenuation )
SOUND_FLOAT_METHOD_FUNCS( Pitch )
SOUND_FLOAT_METHOD_FUNCS( MinGain )
SOUND_FLOAT_METHOD_FUNCS( MaxGain )
SOUND_FLOAT_METHOD_FUNCS( Distance ) {NULL, NULL, 0, NULL}
SOUND_FLOAT_METHOD_FUNCS( Attenuation )
SOUND_FLOAT_METHOD_FUNCS( Pitch )
/*
SOUND_FLOAT_METHOD_FUNCS( Panning )
SOUND_FLOAT_METHOD_FUNCS( MinGain )
SOUND_FLOAT_METHOD_FUNCS( MaxGain )
SOUND_FLOAT_METHOD_FUNCS( Distance )
*/
{NULL, NULL, 0, NULL}
};
/*****************************************************************************/
@@ -185,19 +195,6 @@ PyTypeObject Sound_Type = {
0, /* tp_members */
};
/*****************************************************************************/
/* Function: M_Sound_New */
/* Python equivalent: Blender.Sound.New */
/*****************************************************************************/
static PyObject *M_Sound_New( PyObject * self, PyObject * args,
PyObject * keywords )
{
printf( "In Sound_New() - unimplemented in 2.34\n" );
Py_INCREF( Py_None );
return Py_None;
}
/* NOTE: these were copied and modified from image.h. To Be Done TBD:
* macro-ize them, or C++ templates eventually?
*/
@@ -417,7 +414,7 @@ static PyObject *Sound_play( BPy_Sound * self )
return Py_None;
}
static PyObject *Sound_makeActive( BPy_Sound * self )
static PyObject *Sound_setCurrent( BPy_Sound * self )
{
bSound *snd_ptr = self->sound;
@@ -433,6 +430,19 @@ static PyObject *Sound_makeActive( BPy_Sound * self )
Py_INCREF( Py_None );
return Py_None;
}
/*
static PyObject *Sound_reload( BPy_Sound * self)
{
sound_free_sample();
if (sound->snd_sound) {
SND_RemoveSound(ghSoundScene, sound->snd_sound);
sound->snd_sound = NULL;
}
return EXPP_incr_ret( Py_None );
}
*/
/*****************************************************************************/
/* Function: Sound_getAttr */