Merge with trunk r37757.
[blender.git] / source / blender / makesrna / intern / rna_scene.c
index 0c136fc429b2cdaf8c4c22c24d75e8e300c930d0..cf5b38aeb3aed25fc93d9bbc50168b2a2135796a 100644 (file)
@@ -100,6 +100,14 @@ EnumPropertyItem snap_element_items[] = {
        {SCE_SNAP_MODE_VOLUME, "VOLUME", ICON_SNAP_VOLUME, "Volume", "Snap to volume"},
        {0, NULL, 0, NULL, NULL}};
 
+static EnumPropertyItem audio_channel_items[] = {
+       {1, "MONO", 0, "Mono", "Set audio channels to mono"},
+       {2, "STEREO", 0, "Stereo", "Set audio channels to stereo"},
+       {4, "SURROUND4", 0, "4 Channels", "Set audio channels to 4 channels"},
+       {6, "SURROUND51", 0, "5.1 Surround", "Set audio channels to 5.1 surround sound"},
+       {8, "SURROUND71", 0, "7.1 Surround", "Set audio channels to 7.1 surround sound"},
+       {0, NULL, 0, NULL, NULL}};
+
 EnumPropertyItem image_type_items[] = {
        {0, "", 0, "Image", NULL},
        {R_BMP, "BMP", ICON_FILE_IMAGE, "BMP", "Output image in bitmap format"},
@@ -1049,10 +1057,14 @@ static void rna_def_tool_settings(BlenderRNA  *brna)
                {UV_SELECT_FACE, "FACE", ICON_UV_FACESEL, "Face", "Face selection mode"},
                {UV_SELECT_ISLAND, "ISLAND", ICON_UV_ISLANDSEL, "Island", "Island selection mode"},
                {0, NULL, 0, NULL, NULL}};
-
+       
+       /* the construction of this enum is quite special - everything is stored as bitflags, 
+        * with 1st position only for for on/off (and exposed as boolean), while others are mutually 
+        * exclusive options but which will only have any effect when autokey is enabled
+        */
        static EnumPropertyItem auto_key_items[] = {
-               {AUTOKEY_MODE_NORMAL, "ADD_REPLACE_KEYS", 0, "Add & Replace", ""},
-               {AUTOKEY_MODE_EDITKEYS, "REPLACE_KEYS", 0, "Replace", ""},
+               {AUTOKEY_MODE_NORMAL & ~AUTOKEY_ON, "ADD_REPLACE_KEYS", 0, "Add & Replace", ""},
+               {AUTOKEY_MODE_EDITKEYS & ~AUTOKEY_ON, "REPLACE_KEYS", 0, "Replace", ""},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem retarget_roll_items[] = {
@@ -1195,7 +1207,7 @@ static void rna_def_tool_settings(BlenderRNA  *brna)
        RNA_def_property_ui_icon(prop, ICON_REC, 0);
        
        prop= RNA_def_property(srna, "auto_keying_mode", PROP_ENUM, PROP_NONE);
-       RNA_def_property_enum_sdna(prop, NULL, "autokey_mode");
+       RNA_def_property_enum_bitflag_sdna(prop, NULL, "autokey_mode");
        RNA_def_property_enum_items(prop, auto_key_items);
        RNA_def_property_ui_text(prop, "Auto-Keying Mode", "Mode of automatic keyframe insertion for Objects and Bones");
        
@@ -2466,6 +2478,10 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Volume", "Audio volume");
        RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
 
+       prop= RNA_def_property(srna, "ffmpeg_audio_channels", PROP_ENUM, PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "ffcodecdata.audio_channels");
+       RNA_def_property_enum_items(prop, audio_channel_items);
+       RNA_def_property_ui_text(prop, "Audio Channels", "Sets the audio channel count");
 #endif
 
        prop= RNA_def_property(srna, "fps", PROP_INT, PROP_NONE);