Reverted the addition of the f-curve sound modifier (was added in revision 24759...
authorJoerg Mueller <nexyon@gmail.com>
Thu, 24 Dec 2009 14:01:22 +0000 (14:01 +0000)
committerJoerg Mueller <nexyon@gmail.com>
Thu, 24 Dec 2009 14:01:22 +0000 (14:01 +0000)
source/blender/blenkernel/intern/fmodifier.c
source/blender/blenloader/intern/readfile.c
source/blender/editors/animation/fmodifier_ui.c
source/blender/editors/include/ED_anim_api.h
source/blender/editors/space_graph/graph_buttons.c
source/blender/editors/space_nla/nla_buttons.c
source/blender/makesdna/DNA_anim_types.h
source/blender/makesrna/RNA_access.h
source/blender/makesrna/intern/rna_fcurve.c

index 877c6d6b62ea7e45ff2b02b55fbac7f696421339..5daa2ed1924e7bc43cd5649048de8326dc63b369 100644 (file)
@@ -53,8 +53,6 @@
 #include "RNA_access.h"
 #include "RNA_types.h"
 
-#include "AUD_C-API.h"
-
 #ifndef DISABLE_PYTHON
 #include "BPY_extern.h" /* for BPY_pydriver_eval() */
 #endif
@@ -873,96 +871,6 @@ static FModifierTypeInfo FMI_LIMITS = {
        fcm_limits_evaluate /* evaluate */
 };
 
-/* Sound F-Curve Modifier  --------------------------- */
-
-static void fcm_sound_new_data (void *mdata)
-{
-       FMod_Sound *data= (FMod_Sound *)mdata;
-
-       /* defaults */
-       data->strength= 1.0f;
-       data->delay = 0.0f;
-       data->modification = FCM_SOUND_MODIF_REPLACE;
-       data->sound = NULL;
-}
-
-static void fcm_sound_evaluate (FCurve *fcu, FModifier *fcm, float *cvalue, float evaltime)
-{
-       FMod_Sound *data= (FMod_Sound *)fcm->data;
-       float amplitude;
-       
-       AUD_Device *device;
-       AUD_Sound *limiter;
-       AUD_SoundInfo info;
-       
-       // XXX fixme - need to get in terms of time instead of frames to be really useful
-//     evaltime = FRA2TIME(evaltime);
-       evaltime -= data->delay;
-       
-       /* sound-system cannot cope with negative times/frames */
-       if (evaltime < 0.0f)
-               return;
-       /* must have a sound with a cache so that this can be used */
-       if (ELEM(NULL, data->sound, data->sound->cache))
-               return;
-
-       /* examine this snippet of the wave, and extract the amplitude from it */
-       info = AUD_getInfo(data->sound->cache);
-       info.specs.channels = 1;
-       info.specs.format = AUD_FORMAT_FLOAT32;
-       device = AUD_openReadDevice(info.specs);
-       limiter = AUD_limitSound(data->sound->cache, evaltime, evaltime + 1);
-       AUD_playDevice(device, limiter);
-       AUD_unload(limiter);
-       AUD_readDevice(device, (sample_t*)&amplitude, 1);
-       AUD_closeReadDevice(device);
-
-       /* combine the amplitude with existing motion data */
-       switch (data->modification) {
-               case FCM_SOUND_MODIF_ADD:
-                       *cvalue= *cvalue + amplitude * data->strength;
-                       break;
-               case FCM_SOUND_MODIF_SUBTRACT:
-                       *cvalue= *cvalue - amplitude * data->strength;
-                       break;
-               case FCM_SOUND_MODIF_MULTIPLY:
-                       *cvalue= *cvalue * amplitude * data->strength;
-                       break;
-               case FCM_SOUND_MODIF_REPLACE:
-               default:
-                       *cvalue= *cvalue + amplitude * data->strength;
-                       break;
-       }
-}
-
-static float fcm_sound_time (FCurve *fcu, FModifier *fcm, float cvalue, float evaltime)
-{
-       FMod_Sound *data= (FMod_Sound *)fcm->data;
-
-       /* check for the time delay */
-//     evaltime = FRA2TIME(evaltime);
-       if(evaltime < data->delay)
-               return data->delay;
-
-       /* modifier doesn't change time */
-       return evaltime;
-}
-
-static FModifierTypeInfo FMI_SOUND = {
-       FMODIFIER_TYPE_SOUND, /* type */
-       sizeof(FMod_Sound), /* size */
-       FMI_TYPE_REPLACE_VALUES, /* action type */
-       0, /* requirements */
-       "Sound", /* name */
-       "FMod_Sound", /* struct name */
-       NULL, /* free data */
-       NULL, /* copy data */
-       fcm_sound_new_data, /* new data */
-       NULL, /* verify */
-       fcm_sound_time, /* evaluate time */
-       fcm_sound_evaluate /* evaluate */
-};
-
 /* F-Curve Modifier API --------------------------- */
 /* All of the F-Curve Modifier api functions use FModifierTypeInfo structs to carry out
  * and operations that involve F-Curve modifier specific code.
@@ -984,7 +892,6 @@ static void fmods_init_typeinfo ()
        fmodifiersTypeInfo[6]=  NULL/*&FMI_FILTER*/;                    /* Filter F-Curve Modifier */  // XXX unimplemented
        fmodifiersTypeInfo[7]=  &FMI_PYTHON;                    /* Custom Python F-Curve Modifier */
        fmodifiersTypeInfo[8]=  &FMI_LIMITS;                    /* Limits F-Curve Modifier */
-       fmodifiersTypeInfo[9]=  &FMI_SOUND;                             /* Sound F-Curve Modifier */
 }
 
 /* This function should be used for getting the appropriate type-info when only
index 7512a7ebb025f206d64a081c80c60a358f08d3ec..d6858f664a30484520f35de38b61bd30000798b7 100644 (file)
@@ -1695,12 +1695,6 @@ static void lib_link_fmodifiers(FileData *fd, ID *id, ListBase *list)
                                data->script = newlibadr(fd, id->lib, data->script);
                        }
                                break;
-                       case FMODIFIER_TYPE_SOUND:
-                       {
-                               FMod_Sound *data= (FMod_Sound *)fcm->data;
-                               data->sound = newlibadr(fd, id->lib, data->sound);
-                       }
-                               break;
                }
        }
 }
@@ -10663,13 +10657,6 @@ static void expand_fmodifiers(FileData *fd, Main *mainvar, ListBase *list)
                                expand_doit(fd, mainvar, data->script);
                        }
                                break;
-                       case FMODIFIER_TYPE_SOUND:
-                       {
-                               FMod_Sound *data= (FMod_Sound *)fcm->data;
-
-                               expand_doit(fd, mainvar, data->sound);
-                       }
-                               break;
                }
        }
 }
index ebddcd45a8b036f97b901718dda71c7e3a800a5d..3ba20ca3e882baf943532266cd1eaf740a79a5f8 100644 (file)
@@ -321,45 +321,6 @@ static void draw_modifier__noise(uiLayout *layout, ID *id, FModifier *fcm, short
 
 /* --------------- */
 
-/* draw settings for sound modifier */
-static void draw_modifier__sound(const bContext *C, uiLayout *layout, ID *id, FModifier *fcm, short width)
-{
-       FMod_Sound *data= (FMod_Sound *)fcm->data;
-       PointerRNA ptr;
-       
-       /* init the RNA-pointer */
-       RNA_pointer_create(id, &RNA_FModifierSound, fcm, &ptr);
-       
-       /* sound */
-       uiTemplateID(layout, (bContext*)C, &ptr, "sound", NULL, "sound.open", NULL);
-       
-       if (data->sound)
-       {
-               /* only sounds that are cached can be used, so display error if not cached */
-               if (data->sound->cache)
-               {
-                       /* blending mode */
-                       uiItemR(layout, NULL, 0, &ptr, "modification", 0);
-                       
-                       /* settings */
-                       uiItemR(layout, NULL, 0, &ptr, "strength", 0);
-                       uiItemR(layout, NULL, 0, &ptr, "delay", 0);
-               }
-               else
-               {
-                       PointerRNA id_ptr;
-                       
-                       RNA_id_pointer_create((ID *)data->sound, &id_ptr);
-                       
-                       /* error message with a button underneath allowing users to rectify the issue */
-                       uiItemL(layout, "Sound must be cached.", ICON_ERROR);
-                       uiItemR(layout, NULL, 0, &id_ptr, "caching", UI_ITEM_R_TOGGLE);
-               }
-       }
-}
-
-/* --------------- */
-
 #define BINARYSEARCH_FRAMEEQ_THRESH    0.0001
 
 /* Binary search algorithm for finding where to insert Envelope Data Point.
@@ -623,7 +584,7 @@ static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, shor
 /* --------------- */
 
 
-void ANIM_uiTemplate_fmodifier_draw (const bContext *C, uiLayout *layout, ID *id, ListBase *modifiers, FModifier *fcm)
+void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifiers, FModifier *fcm)
 {
        FModifierTypeInfo *fmi= fmodifier_get_typeinfo(fcm);
        uiLayout *box, *row, *subrow;
@@ -704,15 +665,11 @@ void ANIM_uiTemplate_fmodifier_draw (const bContext *C, uiLayout *layout, ID *id
                        case FMODIFIER_TYPE_LIMITS: /* Limits */
                                draw_modifier__limits(box, id, fcm, width);
                                break;
-
+                       
                        case FMODIFIER_TYPE_NOISE: /* Noise */
                                draw_modifier__noise(box, id, fcm, width);
                                break;
-
-                       case FMODIFIER_TYPE_SOUND: /* Sound */
-                               draw_modifier__sound(C, box, id, fcm, width);
-                               break;
-
+                       
                        default: /* unknown type */
                                break;
                }
index 48e2eff0d31d86bd33c9ff3190d87e82d590e387..b971abac9954ffe9ee6c29ba032cb3de47026d7c 100644 (file)
@@ -428,7 +428,7 @@ void ANIM_draw_previewrange(const struct bContext *C, struct View2D *v2d);
 /* F-MODIFIER TOOLS */
 
 /* draw a given F-Modifier for some layout/UI-Block */
-void ANIM_uiTemplate_fmodifier_draw(const struct bContext *C, struct uiLayout *layout, struct ID *id, ListBase *modifiers, struct FModifier *fcm);
+void ANIM_uiTemplate_fmodifier_draw(struct uiLayout *layout, struct ID *id, ListBase *modifiers, struct FModifier *fcm);
 
 /* ************************************************* */
 /* ASSORTED TOOLS */
index 1eaac8ffd2018ecc8e07366f5380112ac69b6873..3faba9bbba7f32bd2d4840896c7feaf07bc42dcf 100644 (file)
@@ -452,7 +452,7 @@ static void graph_panel_modifiers(const bContext *C, Panel *pa)
        for (fcm= fcu->modifiers.first; fcm; fcm= fcm->next) {
                col= uiLayoutColumn(pa->layout, 1);
                
-               ANIM_uiTemplate_fmodifier_draw(C, col, ale->id, &fcu->modifiers, fcm);
+               ANIM_uiTemplate_fmodifier_draw(col, ale->id, &fcu->modifiers, fcm);
        }
 
        MEM_freeN(ale);
index e8eca9de281d2902d028d661176412fbf854e0a3..df7912979673aa0c3d209c7cfc0d2c261cbc276b 100644 (file)
@@ -434,7 +434,7 @@ static void nla_panel_modifiers(const bContext *C, Panel *pa)
        for (fcm= strip->modifiers.first; fcm; fcm= fcm->next) {
                col= uiLayoutColumn(pa->layout, 1);
                
-               ANIM_uiTemplate_fmodifier_draw(C, col, strip_ptr.id.data, &strip->modifiers, fcm);
+               ANIM_uiTemplate_fmodifier_draw(col, strip_ptr.id.data, &strip->modifiers, fcm);
        }
 }
 
index 31d50e03ccedb7b7ea790c68e88aac9cd92da707..dcb10d0f2cf4cfca26afa02e1a72cb3bf483e3ea 100644 (file)
@@ -36,7 +36,6 @@ extern "C" {
 #include "DNA_listBase.h"
 #include "DNA_action_types.h"
 #include "DNA_curve_types.h"
-#include "DNA_sound_types.h"
 
 /* ************************************************ */
 /* F-Curve DataTypes */
@@ -74,7 +73,6 @@ typedef enum eFModifier_Types {
        FMODIFIER_TYPE_FILTER,          /* unimplemented - for applying: fft, high/low pass filters, etc. */
        FMODIFIER_TYPE_PYTHON,  
        FMODIFIER_TYPE_LIMITS,
-       FMODIFIER_TYPE_SOUND,
        
        /* NOTE: all new modifiers must be added above this line */
        FMODIFIER_NUM_TYPES
@@ -232,25 +230,6 @@ typedef enum eFMod_Noise_Modifications {
        FCM_NOISE_MODIF_MULTIPLY,               /* Multiply the curve by noise */
 } eFMod_Noise_Modifications;
 
-/* sound modifier data */
-typedef struct FMod_Sound {
-       float strength;
-       float delay;
-
-       short modification;
-       short pad[3];
-
-       bSound *sound;
-} FMod_Sound;
-
-/* modification modes */
-typedef enum eFMod_Sound_Modifications {
-       FCM_SOUND_MODIF_REPLACE = 0,    /* Modify existing curve, matching it's shape */
-       FCM_SOUND_MODIF_ADD,                    /* Add amplitude to the curve */
-       FCM_SOUND_MODIF_SUBTRACT,               /* Subtract amplitude from the curve */
-       FCM_SOUND_MODIF_MULTIPLY,               /* Multiply the curve by amplitude */
-} eFMod_Sound_Modifications;
-
 /* Drivers -------------------------------------- */
 
 /* Driver Target 
index a5978937ed5763dd44ef01dbf831969f1800e45e..fc374ff093a0957958a4ee6a5ca46403dadfc13b 100644 (file)
@@ -211,7 +211,6 @@ extern StructRNA RNA_FModifierGenerator;
 extern StructRNA RNA_FModifierLimits;
 extern StructRNA RNA_FModifierNoise;
 extern StructRNA RNA_FModifierPython;
-extern StructRNA RNA_FModifierSound;
 extern StructRNA RNA_FollowPathConstraint;
 extern StructRNA RNA_Function;
 extern StructRNA RNA_GameBooleanProperty;
index f3d36d60c23ce199f4aa384a2beb5bda3746d4b4..62ee19df35269a902bdc506dcfd76278e1712346 100644 (file)
@@ -34,7 +34,6 @@
 #include "DNA_anim_types.h"
 #include "DNA_object_types.h"
 #include "DNA_scene_types.h"
-#include "DNA_sound_types.h"
 
 #include "MEM_guardedalloc.h"
 
@@ -50,7 +49,6 @@ EnumPropertyItem fmodifier_type_items[] = {
        {FMODIFIER_TYPE_FILTER, "FILTER", 0, "Filter", ""},
        {FMODIFIER_TYPE_PYTHON, "PYTHON", 0, "Python", ""},
        {FMODIFIER_TYPE_LIMITS, "LIMITS", 0, "Limits", ""},
-       {FMODIFIER_TYPE_SOUND, "SOUND", 0, "Sound", ""},
        {0, NULL, 0, NULL, NULL}};
 
 #ifdef RNA_RUNTIME
@@ -78,8 +76,6 @@ static StructRNA *rna_FModifierType_refine(struct PointerRNA *ptr)
                        return &RNA_FModifierPython;
                case FMODIFIER_TYPE_LIMITS:
                        return &RNA_FModifierLimits;
-               case FMODIFIER_TYPE_SOUND:
-                       return &RNA_FModifierSound;
                default:
                        return &RNA_UnknownType;
        }
@@ -620,46 +616,6 @@ static void rna_def_fmodifier_noise(BlenderRNA *brna)
 }
 
 
-/* --------- */
-
-static void rna_def_fmodifier_sound(BlenderRNA *brna)
-{
-       StructRNA *srna;
-       PropertyRNA *prop;
-
-       static EnumPropertyItem prop_modification_items[] = {
-               {FCM_SOUND_MODIF_REPLACE, "REPLACE", 0, "Replace", ""},
-               {FCM_SOUND_MODIF_ADD, "ADD", 0, "Add", ""},
-               {FCM_SOUND_MODIF_SUBTRACT, "SUBTRACT", 0, "Subtract", ""},
-               {FCM_SOUND_MODIF_MULTIPLY, "MULTIPLY", 0, "Multiply", ""},
-               {0, NULL, 0, NULL, NULL}};
-
-       srna= RNA_def_struct(brna, "FModifierSound", "FModifier");
-       RNA_def_struct_ui_text(srna, "Sound F-Modifier", "Modifies an F-Curve based on the amplitudes in a sound.");
-       RNA_def_struct_sdna_from(srna, "FMod_Sound", "data");
-
-       prop= RNA_def_property(srna, "modification", PROP_ENUM, PROP_NONE);
-       RNA_def_property_enum_items(prop, prop_modification_items);
-       RNA_def_property_ui_text(prop, "Modification", "Method of modifying the existing F-Curve.");
-       RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
-
-       prop= RNA_def_property(srna, "strength", PROP_FLOAT, PROP_NONE);
-       RNA_def_property_float_sdna(prop, NULL, "strength");
-       RNA_def_property_ui_text(prop, "Strength", "Amplitude of the sound - the amount that it modifies the underlying curve");
-       RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
-
-       prop= RNA_def_property(srna, "delay", PROP_FLOAT, PROP_NONE);
-       RNA_def_property_float_sdna(prop, NULL, "delay");
-       RNA_def_property_ui_text(prop, "delay", "The delay before the sound curve modification should start");
-       RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
-
-       prop= RNA_def_property(srna, "sound", PROP_POINTER, PROP_NONE);
-       RNA_def_property_struct_type(prop, "Sound");
-       RNA_def_property_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Sound", "Sound datablock used by this modifier.");
-
-}
-
 /* --------- */
 
 static void rna_def_fmodifier(BlenderRNA *brna)
@@ -989,7 +945,6 @@ void RNA_def_fcurve(BlenderRNA *brna)
        rna_def_fmodifier_python(brna);
        rna_def_fmodifier_limits(brna);
        rna_def_fmodifier_noise(brna);
-       rna_def_fmodifier_sound(brna);
 }