Merge branch 'master' into blender2.8
[blender.git] / source / blender / makesrna / intern / rna_sequencer.c
index 221bf4b59b34656cb4cb8191482d6d4b46243925..520a1c2f730dc9b40c7b6d8441f56644292ff077 100644 (file)
@@ -67,6 +67,7 @@ EnumPropertyItem rna_enum_sequence_modifier_type_items[] = {
        {seqModifierType_BrightContrast, "BRIGHT_CONTRAST", ICON_NONE, "Bright/Contrast", ""},
        {seqModifierType_Mask, "MASK", ICON_NONE, "Mask", ""},
        {seqModifierType_WhiteBalance, "WHITE_BALANCE", ICON_NONE, "White Balance", ""},
+       {seqModifierType_Tonemap, "TONEMAP", ICON_NONE, "Tone Map", ""},
        {0, NULL, 0, NULL, NULL}
 };
 
@@ -281,7 +282,7 @@ static void rna_Sequence_frame_length_set(PointerRNA *ptr, int value)
        Sequence *seq = (Sequence *)ptr->data;
        Scene *scene = (Scene *)ptr->id.data;
        
-       BKE_sequence_tx_set_final_right(seq, seq->start + value);
+       BKE_sequence_tx_set_final_right(seq, BKE_sequence_tx_get_final_left(seq, false) + value);
        do_sequence_frame_change_update(scene, seq);
 }
 
@@ -291,7 +292,7 @@ static int rna_Sequence_frame_length_get(PointerRNA *ptr)
        return BKE_sequence_tx_get_final_right(seq, false) - BKE_sequence_tx_get_final_left(seq, false);
 }
 
-static int rna_Sequence_frame_editable(PointerRNA *ptr)
+static int rna_Sequence_frame_editable(PointerRNA *ptr, const char **UNUSED(r_info))
 {
        Sequence *seq = (Sequence *)ptr->data;
        /* Effect sequences' start frame and length must be readonly! */
@@ -340,7 +341,7 @@ static void rna_Sequence_use_translation_set(PointerRNA *ptr, int value)
                }
        }
        else {
-               seq->flag ^= SEQ_USE_TRANSFORM;
+               seq->flag &= ~SEQ_USE_TRANSFORM;
        }
 }
 
@@ -354,7 +355,7 @@ static void rna_Sequence_use_crop_set(PointerRNA *ptr, int value)
                }
        }
        else {
-               seq->flag ^= SEQ_USE_CROP;
+               seq->flag &= ~SEQ_USE_CROP;
        }
 }
 
@@ -721,6 +722,15 @@ static void rna_Sequence_filepath_update(Main *bmain, Scene *UNUSED(scene), Poin
        rna_Sequence_update(bmain, scene, ptr);
 }
 
+static void rna_Sequence_sound_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+{
+       Sequence *seq = (Sequence *) ptr->data;
+       if (seq->sound != NULL) {
+               BKE_sound_update_scene_sound(seq->scene_sound, seq->sound);
+       }
+       rna_Sequence_update(bmain, scene, ptr);
+}
+
 static int seqproxy_seq_cmp_cb(Sequence *seq, void *arg_pt)
 {
        SequenceSearchData *data = arg_pt;
@@ -945,6 +955,8 @@ static StructRNA *rna_SequenceModifier_refine(struct PointerRNA *ptr)
                        return &RNA_BrightContrastModifier;
                case seqModifierType_WhiteBalance:
                        return &RNA_WhiteBalanceModifier;
+               case seqModifierType_Tonemap:
+                       return &RNA_SequencerTonemapModifierData;
                default:
                        return &RNA_SequenceModifier;
        }
@@ -1016,8 +1028,9 @@ static int rna_SequenceModifier_otherSequence_poll(PointerRNA *ptr, PointerRNA v
        Sequence *seq = sequence_get_by_modifier(ed, ptr->data);
        Sequence *cur = (Sequence *) value.data;
 
-       if (seq == cur)
+       if ((seq == cur) || (cur->type == SEQ_TYPE_SOUND_RAM)) {
                return false;
+       }
 
        return true;
 }
@@ -1033,7 +1046,7 @@ static SequenceModifierData *rna_Sequence_modifier_new(Sequence *seq, bContext *
                Scene *scene = CTX_data_scene(C);
                SequenceModifierData *smd;
 
-               smd = BKE_sequence_modifier_new(seq, name, type, scene);
+               smd = BKE_sequence_modifier_new(seq, name, type);
 
                BKE_sequence_invalidate_cache_for_modifier(scene, seq);
 
@@ -1083,7 +1096,7 @@ static void rna_def_strip_element(BlenderRNA *brna)
        
        prop = RNA_def_property(srna, "filename", PROP_STRING, PROP_FILENAME);
        RNA_def_property_string_sdna(prop, NULL, "name");
-       RNA_def_property_ui_text(prop, "Filename", "");
+       RNA_def_property_ui_text(prop, "Filename", "Name of the source file");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceElement_update");
 
        prop = RNA_def_property(srna, "orig_width", PROP_INT, PROP_NONE);
@@ -1108,25 +1121,25 @@ static void rna_def_strip_crop(BlenderRNA *brna)
 
        prop = RNA_def_property(srna, "max_y", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "top");
-       RNA_def_property_ui_text(prop, "Top", "");
+       RNA_def_property_ui_text(prop, "Top", "Number of pixels to crop from the top");
        RNA_def_property_ui_range(prop, 0, 4096, 1, -1);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceCrop_update");
        
        prop = RNA_def_property(srna, "min_y", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "bottom");
-       RNA_def_property_ui_text(prop, "Bottom", "");
+       RNA_def_property_ui_text(prop, "Bottom", "Number of pixels to crop from the bottom");
        RNA_def_property_ui_range(prop, 0, 4096, 1, -1);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceCrop_update");
        
        prop = RNA_def_property(srna, "min_x", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "left");
-       RNA_def_property_ui_text(prop, "Left", "");
+       RNA_def_property_ui_text(prop, "Left", "Number of pixels to crop from the left side");
        RNA_def_property_ui_range(prop, 0, 4096, 1, -1);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceCrop_update");
 
        prop = RNA_def_property(srna, "max_x", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "right");
-       RNA_def_property_ui_text(prop, "Right", "");
+       RNA_def_property_ui_text(prop, "Right", "Number of pixels to crop from the right side");
        RNA_def_property_ui_range(prop, 0, 4096, 1, -1);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceCrop_update");
 
@@ -1144,13 +1157,13 @@ static void rna_def_strip_transform(BlenderRNA *brna)
 
        prop = RNA_def_property(srna, "offset_x", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "xofs");
-       RNA_def_property_ui_text(prop, "Offset X", "");
+       RNA_def_property_ui_text(prop, "Offset X", "Amount to move the input on the X axis within its boundaries");
        RNA_def_property_ui_range(prop, -4096, 4096, 1, -1);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceTransform_update");
 
        prop = RNA_def_property(srna, "offset_y", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "yofs");
-       RNA_def_property_ui_text(prop, "Offset Y", "");
+       RNA_def_property_ui_text(prop, "Offset Y", "Amount to move the input on the Y axis within its boundaries");
        RNA_def_property_ui_range(prop, -4096, 4096, 1, -1);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceTransform_update");
 
@@ -1234,7 +1247,7 @@ static void rna_def_strip_proxy(BlenderRNA *brna)
        prop = RNA_def_property(srna, "timecode", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "tc");
        RNA_def_property_enum_items(prop, seq_tc_items);
-       RNA_def_property_ui_text(prop, "Timecode", "");
+       RNA_def_property_ui_text(prop, "Timecode", "Method for reading the inputs timecode");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_tcindex_update");
 
        prop = RNA_def_property(srna, "use_proxy_custom_directory", PROP_BOOLEAN, PROP_NONE);
@@ -1277,17 +1290,17 @@ static void rna_def_color_balance(BlenderRNA *brna)
 
        prop = RNA_def_property(srna, "invert_gain", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_GAIN);
-       RNA_def_property_ui_text(prop, "Inverse Gain", "");
+       RNA_def_property_ui_text(prop, "Inverse Gain", "Invert the gain color`");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceColorBalance_update");
 
        prop = RNA_def_property(srna, "invert_gamma", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_GAMMA);
-       RNA_def_property_ui_text(prop, "Inverse Gamma", "");
+       RNA_def_property_ui_text(prop, "Inverse Gamma", "Invert the gamma color");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceColorBalance_update");
 
        prop = RNA_def_property(srna, "invert_lift", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_LIFT);
-       RNA_def_property_ui_text(prop, "Inverse Lift", "");
+       RNA_def_property_ui_text(prop, "Inverse Lift", "Invert the lift color");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceColorBalance_update");
 
        /* not yet used */
@@ -1345,10 +1358,10 @@ static void rna_def_sequence_modifiers(BlenderRNA *brna, PropertyRNA *cprop)
        RNA_def_function_flag(func, FUNC_USE_CONTEXT | FUNC_USE_REPORTS);
        RNA_def_function_ui_description(func, "Add a new modifier");
        parm = RNA_def_string(func, "name", "Name", 0, "", "New name for the modifier");
-       RNA_def_property_flag(parm, PROP_REQUIRED);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
        /* modifier to add */
        parm = RNA_def_enum(func, "type", rna_enum_sequence_modifier_type_items, seqModifierType_ColorBalance, "", "Modifier type to add");
-       RNA_def_property_flag(parm, PROP_REQUIRED);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
        /* return type */
        parm = RNA_def_pointer(func, "modifier", "SequenceModifier", "", "Newly created modifier");
        RNA_def_function_return(func, parm);
@@ -1359,8 +1372,8 @@ static void rna_def_sequence_modifiers(BlenderRNA *brna, PropertyRNA *cprop)
        RNA_def_function_ui_description(func, "Remove an existing modifier from the sequence");
        /* modifier to remove */
        parm = RNA_def_pointer(func, "modifier", "SequenceModifier", "", "Modifier to remove");
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL | PROP_RNAPTR);
-       RNA_def_property_clear_flag(parm, PROP_THICK_WRAP);
+       RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
+       RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0);
 
        /* clear all modifiers */
        func = RNA_def_function(srna, "clear", "rna_Sequence_modifier_clear");
@@ -1441,13 +1454,13 @@ static void rna_def_sequence(BlenderRNA *brna)
        prop = RNA_def_property(srna, "mute", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MUTE);
        RNA_def_property_ui_icon(prop, ICON_RESTRICT_VIEW_OFF, true);
-       RNA_def_property_ui_text(prop, "Mute", "");
+       RNA_def_property_ui_text(prop, "Mute", "Disable strip so that it cannot be viewed in the output");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_mute_update");
 
        prop = RNA_def_property(srna, "lock", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_LOCK);
        RNA_def_property_ui_icon(prop, ICON_UNLOCKED, true);
-       RNA_def_property_ui_text(prop, "Lock", "Lock strip so that it can't be transformed");
+       RNA_def_property_ui_text(prop, "Lock", "Lock strip so that it cannot be transformed");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, NULL);
 
        /* strip positioning */
@@ -1469,7 +1482,7 @@ static void rna_def_sequence(BlenderRNA *brna)
        prop = RNA_def_property(srna, "frame_start", PROP_INT, PROP_TIME);
        RNA_def_property_int_sdna(prop, NULL, "start");
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
-       RNA_def_property_ui_text(prop, "Start Frame", "");
+       RNA_def_property_ui_text(prop, "Start Frame", "X position where the strip begins");
        RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_start_frame_set", NULL); /* overlap tests and calc_seq_disp */
        RNA_def_property_editable_func(prop, "rna_Sequence_frame_editable");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
@@ -1540,12 +1553,12 @@ static void rna_def_sequence(BlenderRNA *brna)
        prop = RNA_def_property(srna, "blend_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "blend_mode");
        RNA_def_property_enum_items(prop, blend_mode_items);
-       RNA_def_property_ui_text(prop, "Blend Mode", "");
+       RNA_def_property_ui_text(prop, "Blend Mode", "Method for controlling how the strip combines with other strips");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
        
        prop = RNA_def_property(srna, "blend_alpha", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_range(prop, 0.0f, 1.0f);
-       RNA_def_property_ui_text(prop, "Blend Opacity", "");
+       RNA_def_property_ui_text(prop, "Blend Opacity", "Percentage of how much the strip's colors affect other strips");
        /* stupid 0-100 -> 0-1 */
        RNA_def_property_float_funcs(prop, "rna_Sequence_opacity_get", "rna_Sequence_opacity_set", NULL);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
@@ -1554,7 +1567,7 @@ static void rna_def_sequence(BlenderRNA *brna)
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_range(prop, 0.0f, 1.0f, 0.1, 3);
        RNA_def_property_float_sdna(prop, NULL, "effect_fader");
-       RNA_def_property_ui_text(prop, "Effect fader position", "");
+       RNA_def_property_ui_text(prop, "Effect fader position", "Custom fade value");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
 
        prop = RNA_def_property(srna, "use_default_fade", PROP_BOOLEAN, PROP_NONE);
@@ -1662,7 +1675,7 @@ static void rna_def_filter_video(StructRNA *srna)
 
        prop = RNA_def_property(srna, "use_deinterlace", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_FILTERY);
-       RNA_def_property_ui_text(prop, "De-Interlace", "For video movies to remove fields");
+       RNA_def_property_ui_text(prop, "Deinterlace", "Remove fields from video movies");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update_reopen_files");
 
        prop = RNA_def_property(srna, "alpha_mode", PROP_ENUM, PROP_NONE);
@@ -1702,7 +1715,7 @@ static void rna_def_filter_video(StructRNA *srna)
        RNA_def_property_range(prop, 0.0f, 20.0f);
        RNA_def_property_ui_range(prop, 0.0f, 2.0f, 3, 3);
        RNA_def_property_float_default(prop, 1.0f);
-       RNA_def_property_ui_text(prop, "Saturation", "");
+       RNA_def_property_ui_text(prop, "Saturation", "Adjust the intensity of the input's color");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
 
        prop = RNA_def_property(srna, "strobe", PROP_FLOAT, PROP_NONE);
@@ -2024,7 +2037,7 @@ static void rna_def_sound(BlenderRNA *brna)
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_struct_type(prop, "Sound");
        RNA_def_property_ui_text(prop, "Sound", "Sound data-block used by this sequence");
-       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_sound_update");
 
        prop = RNA_def_property(srna, "volume", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "volume");
@@ -2193,13 +2206,13 @@ static void rna_def_transform(StructRNA *srna)
 
        prop = RNA_def_property(srna, "scale_start_x", PROP_FLOAT, PROP_UNSIGNED);
        RNA_def_property_float_sdna(prop, NULL, "ScalexIni");
-       RNA_def_property_ui_text(prop, "Scale X", "");
+       RNA_def_property_ui_text(prop, "Scale X", "Amount to scale the input in the X axis");
        RNA_def_property_ui_range(prop, 0, 10, 3, 6);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
        
        prop = RNA_def_property(srna, "scale_start_y", PROP_FLOAT, PROP_UNSIGNED);
        RNA_def_property_float_sdna(prop, NULL, "ScaleyIni");
-       RNA_def_property_ui_text(prop, "Scale Y", "");
+       RNA_def_property_ui_text(prop, "Scale Y", "Amount to scale the input in the Y axis");
        RNA_def_property_ui_range(prop, 0, 10, 3, 6);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
        
@@ -2210,33 +2223,33 @@ static void rna_def_transform(StructRNA *srna)
        
        prop = RNA_def_property(srna, "translate_start_x", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "xIni");
-       RNA_def_property_ui_text(prop, "Translate X", "");
+       RNA_def_property_ui_text(prop, "Translate X", "Amount to move the input on the X axis");
        RNA_def_property_ui_range(prop, -4000.0f, 4000.0f, 3, 6);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
        
        prop = RNA_def_property(srna, "translate_start_y", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "yIni");
-       RNA_def_property_ui_text(prop, "Translate Y", "");
+       RNA_def_property_ui_text(prop, "Translate Y", "Amount to move the input on the Y axis");
        RNA_def_property_ui_range(prop, -4000.0f, 4000.0f, 3, 6);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
        
        prop = RNA_def_property(srna, "rotation_start", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "rotIni");
        RNA_def_property_range(prop, -360.0f, 360.0f);
-       RNA_def_property_ui_text(prop, "Rotation", "");
+       RNA_def_property_ui_text(prop, "Rotation", "Degrees to rotate the input");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
        
        prop = RNA_def_property(srna, "translation_unit", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "percent");
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); /* not meant to be animated */
        RNA_def_property_enum_items(prop, translation_unit_items);
-       RNA_def_property_ui_text(prop, "Translation Unit", "");
+       RNA_def_property_ui_text(prop, "Translation Unit", "Unit of measure to translate the input");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
        
        prop = RNA_def_property(srna, "interpolation", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_items(prop, interpolation_items);
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); /* not meant to be animated */
-       RNA_def_property_ui_text(prop, "Interpolation", "");
+       RNA_def_property_ui_text(prop, "Interpolation", "Method to determine how missing pixels are created");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
 }
 
@@ -2248,7 +2261,7 @@ static void rna_def_solid_color(StructRNA *srna)
 
        prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_float_sdna(prop, NULL, "col");
-       RNA_def_property_ui_text(prop, "Color", "");
+       RNA_def_property_ui_text(prop, "Color", "Effect Strip color");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
 }
 
@@ -2315,9 +2328,20 @@ static void rna_def_text(StructRNA *srna)
        prop = RNA_def_property(srna, "font_size", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "text_size");
        RNA_def_property_ui_text(prop, "Size", "Size of the text");
+       RNA_def_property_range(prop, 0.0, 2000);
        RNA_def_property_ui_range(prop, 0.0f, 1000, 1, -1);
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
 
+       prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_float_sdna(prop, NULL, "color");
+       RNA_def_property_ui_text(prop, "Color", "Text color");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+
+       prop = RNA_def_property(srna, "shadow_color", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_float_sdna(prop, NULL, "shadow_color");
+       RNA_def_property_ui_text(prop, "Shadow Color", "");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+
        prop = RNA_def_property(srna, "location", PROP_FLOAT, PROP_XYZ);
        RNA_def_property_float_sdna(prop, NULL, "loc");
        RNA_def_property_ui_text(prop, "Location", "Location of the text");
@@ -2335,13 +2359,13 @@ static void rna_def_text(StructRNA *srna)
        prop = RNA_def_property(srna, "align_x", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "align");
        RNA_def_property_enum_items(prop, text_align_x_items);
-       RNA_def_property_ui_text(prop, "Align X", "");
+       RNA_def_property_ui_text(prop, "Align X", "Align the text along the X axis");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
 
        prop = RNA_def_property(srna, "align_y", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "align_y");
        RNA_def_property_enum_items(prop, text_align_y_items);
-       RNA_def_property_ui_text(prop, "Align Y", "");
+       RNA_def_property_ui_text(prop, "Align Y", "Align the image along the Y axis");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
 
        prop = RNA_def_property(srna, "text", PROP_STRING, PROP_NONE);
@@ -2375,7 +2399,7 @@ static EffectInfo def_effects[] = {
        {"TransformSequence", "Transform Sequence",
         "Sequence strip applying affine transformations to other strips", rna_def_transform, 1},
        {"WipeSequence", "Wipe Sequence", "Sequence strip creating a wipe transition",
-        rna_def_wipe, 1},
+        rna_def_wipe, 2},
        {"GaussianBlurSequence", "Gaussian Blur Sequence", "Sequence strip creating a gaussian blur",
         rna_def_gaussian_blur, 1},
        {"TextSequence", "Text Sequence", "Sequence strip creating text",
@@ -2411,6 +2435,12 @@ static void rna_def_modifier(BlenderRNA *brna)
                {0, NULL, 0, NULL, NULL}
        };
 
+       static const EnumPropertyItem mask_time_items[] = {
+               {SEQUENCE_MASK_TIME_RELATIVE, "RELATIVE", 0, "Relative", "Mask animation is offset to start of strip"},
+               {SEQUENCE_MASK_TIME_ABSOLUTE, "ABSOLUTE", 0, "Absolute", "Mask animation is in sync with scene frame"},
+               {0, NULL, 0, NULL, NULL}
+       };
+
        srna = RNA_def_struct(brna, "SequenceModifier", NULL);
        RNA_def_struct_sdna(srna, "SequenceModifierData");
        RNA_def_struct_ui_text(srna, "SequenceModifier", "Modifier for sequence strip");
@@ -2447,6 +2477,12 @@ static void rna_def_modifier(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Mask Input Type", "Type of input data used for mask");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
 
+       prop = RNA_def_property(srna, "mask_time", PROP_ENUM, PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "mask_time");
+       RNA_def_property_enum_items(prop, mask_time_items);
+       RNA_def_property_ui_text(prop, "Mask Time", "Time to use for the Mask animation");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
        prop = RNA_def_property(srna, "input_mask_strip",  PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "mask_sequence");
        RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_SequenceModifier_otherSequence_poll");
@@ -2477,7 +2513,7 @@ static void rna_def_colorbalance_modifier(BlenderRNA *brna)
        RNA_def_property_float_sdna(prop, NULL, "color_multiply");
        RNA_def_property_range(prop, 0.0f, 20.0f);
        RNA_def_property_float_default(prop, 1.0f);
-       RNA_def_property_ui_text(prop, "Multiply Colors", "");
+       RNA_def_property_ui_text(prop, "Multiply Colors", "Multiply the intensity of each pixel");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
 }
 
@@ -2541,13 +2577,71 @@ static void rna_def_brightcontrast_modifier(BlenderRNA *brna)
        prop = RNA_def_property(srna, "bright", PROP_FLOAT, PROP_UNSIGNED);
        RNA_def_property_float_sdna(prop, NULL, "bright");
        RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
-       RNA_def_property_ui_text(prop, "Bright", "");
+       RNA_def_property_ui_text(prop, "Bright", "Adjust the luminosity of the colors");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
 
        prop = RNA_def_property(srna, "contrast", PROP_FLOAT, PROP_UNSIGNED);
        RNA_def_property_float_sdna(prop, NULL, "contrast");
        RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
-       RNA_def_property_ui_text(prop, "Contrast", "");
+       RNA_def_property_ui_text(prop, "Contrast", "Adjust the difference in luminosity between pixels");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+}
+
+static void rna_def_tonemap_modifier(BlenderRNA *brna)
+{
+       StructRNA *srna;
+       PropertyRNA *prop;
+
+       static EnumPropertyItem type_items[] = {
+               {SEQ_TONEMAP_RD_PHOTORECEPTOR, "RD_PHOTORECEPTOR", 0, "R/D Photoreceptor", ""},
+               {SEQ_TONEMAP_RH_SIMPLE,        "RH_SIMPLE",        0, "Rh Simple",         ""},
+               {0, NULL, 0, NULL, NULL}
+       };
+
+       srna = RNA_def_struct(brna, "SequencerTonemapModifierData", "SequenceModifier");
+       RNA_def_struct_sdna(srna, "SequencerTonemapModifierData");
+       RNA_def_struct_ui_text(srna, "SequencerTonemapModifierData", "Tone mapping modifier");
+
+       prop = RNA_def_property(srna, "tonemap_type", PROP_ENUM, PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "type");
+       RNA_def_property_enum_items(prop, type_items);
+       RNA_def_property_ui_text(prop, "Tonemap Type", "Tone mapping algorithm");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
+       prop = RNA_def_property(srna, "key", PROP_FLOAT, PROP_FACTOR);
+       RNA_def_property_range(prop, 0.0f, 1.0f);
+       RNA_def_property_ui_text(prop, "Key", "The value the average luminance is mapped to");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
+       prop = RNA_def_property(srna, "offset", PROP_FLOAT, PROP_NONE);
+       RNA_def_property_range(prop, 0.001f, 10.0f);
+       RNA_def_property_ui_text(prop, "Offset",
+                                "Normally always 1, but can be used as an extra control to alter the brightness curve");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
+       prop = RNA_def_property(srna, "gamma", PROP_FLOAT, PROP_NONE);
+       RNA_def_property_range(prop, 0.001f, 3.0f);
+       RNA_def_property_ui_text(prop, "Gamma", "If not used, set to 1");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
+       prop = RNA_def_property(srna, "intensity", PROP_FLOAT, PROP_NONE);
+       RNA_def_property_range(prop, -8.0f, 8.0f);
+       RNA_def_property_ui_text(prop, "Intensity", "If less than zero, darkens image; otherwise, makes it brighter");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
+       prop = RNA_def_property(srna, "contrast", PROP_FLOAT, PROP_FACTOR);
+       RNA_def_property_range(prop, 0.0f, 1.0f);
+       RNA_def_property_ui_text(prop, "Contrast", "Set to 0 to use estimate from input image");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
+       prop = RNA_def_property(srna, "adaptation", PROP_FLOAT, PROP_FACTOR);
+       RNA_def_property_range(prop, 0.0f, 1.0f);
+       RNA_def_property_ui_text(prop, "Adaptation", "If 0, global; if 1, based on pixel intensity");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
+       prop = RNA_def_property(srna, "correction", PROP_FLOAT, PROP_FACTOR);
+       RNA_def_property_range(prop, 0.0f, 1.0f);
+       RNA_def_property_ui_text(prop, "Color Correction", "If 0, same for all channels; if 1, each independent");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
 }
 
@@ -2560,6 +2654,7 @@ static void rna_def_modifiers(BlenderRNA *brna)
        rna_def_hue_modifier(brna);
        rna_def_brightcontrast_modifier(brna);
        rna_def_whitebalance_modifier(brna);
+       rna_def_tonemap_modifier(brna);
 }
 
 void RNA_def_sequencer(BlenderRNA *brna)