proxy bug fixes, add moveobj, sams icons, ladspa fixes, pot sigfpe
[goodguy/history.git] / cinelerra-5.1 / cinelerra / formattools.C
index 4f6580d4fa21628ed578a7059e2f343ebf932462..60d0b6c2905d5dce9d1295f7151dacdbcf18ebd8 100644 (file)
@@ -62,9 +62,7 @@ FormatTools::FormatTools(MWindow *mwindow,
        format_button = 0;
        format_text = 0;
        audio_title = 0;
-       audio_switch = 0;
        video_title = 0;
-       video_switch = 0;
        channels_title = 0;
        channels_button = 0;
        multiple_files = 0;
@@ -105,19 +103,17 @@ SET_TRACE
        if(channels_tumbler) delete channels_tumbler;
 }
 
-void FormatTools::create_objects(int &init_x,
-                                               int &init_y,
-                                               int do_audio,    // Include support for audio
-                                               int do_video,   // Include support for video
-                                               int prompt_audio,  // Include checkbox for audio
-                                               int prompt_video,
-                                               int prompt_audio_channels,
-                                               int prompt_video_compression,
-                                               const char *locked_compressor,
-                                               int recording,
-                                               int *strategy,
-                                               int brender,
-                                               int horizontal_layout)
+void FormatTools::create_objects(
+               int &init_x, int &init_y,
+               int do_audio, int do_video,   // Include support for audio, video
+               int prompt_audio, int prompt_video, // Include checkbox for audio, video
+               int prompt_audio_channels,
+               int prompt_video_compression,
+               const char *locked_compressor,
+               int recording,
+               int *strategy,
+               int brender,
+               int horizontal_layout)
 {
        int x = init_x;
        int y = init_y;
@@ -339,17 +335,17 @@ void FormatTools::update_format()
 {
        if( do_audio && prompt_audio && audio_switch ) {
                audio_switch->update(asset->audio_data);
-               if( !asset->audio_data )
-                       audio_switch->disable();
-               else
+               if( File::renders_audio(asset) )
                        audio_switch->enable();
+               else
+                       audio_switch->disable();
        }
        if( do_video && prompt_video && video_switch ) {
                video_switch->update(asset->video_data);
-               if( !asset->video_data )
-                       video_switch->disable();
-               else
+               if( File::renders_video(asset) )
                        video_switch->enable();
+               else
+                       video_switch->disable();
        }
        if( asset->format == FILE_FFMPEG ) {
                ffmpeg_type->show();
@@ -453,11 +449,8 @@ void FormatTools::update(Asset *asset, int *strategy)
 
        if(path_textbox)
                path_textbox->update(asset->path);
-       format_text->update(File::formattostr(plugindb, asset->format));
-       if(do_audio && prompt_audio && audio_switch)
-               audio_switch->update(asset->audio_data);
-       if(do_video && prompt_video && video_switch)
-               video_switch->update(asset->video_data);
+       format_text->update(File::formattostr(asset->format));
+       update_format();
        if(strategy)
        {
                multiple_files->update(strategy);
@@ -775,7 +768,7 @@ int FormatVideo::handle_event()
 
 
 FormatFormat::FormatFormat(int x, int y, FormatTools *format)
- : FormatPopup(format->plugindb, x, y, format->use_brender)
+ : FormatPopup(x, y, format->do_audio, format->do_video, format->use_brender)
 {
        this->format = format;
 }
@@ -788,17 +781,18 @@ int FormatFormat::handle_event()
 {
        BC_ListBoxItem *selection = get_selection(0, 0);
        if( selection ) {
-               int new_format = File::strtoformat(format->plugindb, get_selection(0, 0)->get_text());
+               int new_format = File::strtoformat(get_selection(0, 0)->get_text());
 //             if(new_format != format->asset->format)
                {
                        Asset *asset = format->asset;
                        asset->format = new_format;
-                       asset->audio_data = File::supports_audio(asset->format);
-                       asset->video_data = File::supports_video(asset->format);
+                       asset->audio_data = File::renders_audio(asset);
+                       asset->video_data = File::renders_video(asset);
                        asset->ff_audio_options[0] = 0;
                        asset->ff_video_options[0] = 0;
                        format->format_text->update(selection->get_text());
-                       format->update_extension();
+                       if( !format->use_brender )
+                               format->update_extension();
                        format->close_format_windows();
                        if (format->path_recent) format->path_recent->
                                load_items(File::formattostr(format->asset->format));