add zoom slider, fix stop_playback on quit, new msg.txt, rework filelist
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mwindow.C
index ec1376878f4a2ee62926ebfcb417df4c33dc2fa9..75dc29acaa32d70f80126e10c741c780e9620622 100644 (file)
@@ -201,6 +201,7 @@ MWindow::MWindow()
        mainprogress = 0;
        brender = 0;
        brender_active = 0;
+       strcpy(cin_lang,"en");
        channeldb_buz =  new ChannelDB;
        channeldb_v4l2jpeg =  new ChannelDB;
        //file_server = 0;
@@ -230,6 +231,7 @@ MWindow::MWindow()
 MWindow::~MWindow()
 {
        run_lock->lock("MWindow::~MWindow");
+       stop_playback(1);
        in_destructor = 1;
 //printf("MWindow::~MWindow %d\n", __LINE__);
        gui->stop_drawing();
@@ -470,7 +472,7 @@ void MWindow::check_language()
        if( !env_lang ) env_lang = getenv("LC_ALL");
        if( !env_lang ) env_lang = getenv("LANG");
        if( !env_lang ) {
-               snprintf(curr_lang, sizeof(curr_lang), "%s-%s.%s",
+               snprintf(curr_lang, sizeof(curr_lang), "%s_%s-%s",
                        BC_Resources::language, BC_Resources::region, BC_Resources::encoding);
                env_lang = curr_lang;
        }
@@ -487,6 +489,12 @@ void MWindow::check_language()
                ::remove(ladspa_path);
                defaults->save();
        }
+       if( strlen(env_lang) > 1 &&
+           ( env_lang[2] == 0 || env_lang[2] == '_'  || env_lang[2] == '.' ) ) {
+               cin_lang[0] = env_lang[0];  cin_lang[1] = env_lang[1];  cin_lang[2] = 0;
+       }
+       else
+               strcpy(cin_lang, "en");
 }
 
 void MWindow::get_plugin_path(char *path, const char *plug_dir, const char *fs_path)
@@ -919,6 +927,7 @@ void MWindow::init_gwindow()
 
 void MWindow::init_tipwindow()
 {
+       TipWindow::load_tips(cin_lang);
        if( !twindow )
                twindow = new TipWindow(this);
        twindow->start();
@@ -1326,17 +1335,12 @@ void MWindow::stop_playback(int wait)
        int locked  = gui->get_window_lock();
        if( locked ) gui->unlock_window();
 
-       cwindow->playback_engine->que->send_command(STOP,
-               CHANGE_NONE,
-               0,
-               0);
-       cwindow->playback_engine->interrupt_playback(wait);
+       cwindow->playback_engine->stop_playback();
 
        for(int i = 0; i < vwindows.size(); i++) {
                VWindow *vwindow = vwindows[i];
                if( !vwindow->is_running() ) continue;
-               vwindow->playback_engine->que->send_command(STOP, CHANGE_NONE, 0, 0);
-               vwindow->playback_engine->interrupt_playback(wait);
+               vwindow->playback_engine->stop_playback();
        }
        if( locked ) gui->lock_window("MWindow::stop_playback");
 }