fix shuttle for Termux/Android too
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / mainclock.C
1
2 /*
3  * CINELERRA
4  * Copyright (C) 1997-2017 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #include "edl.h"
23 #include "edlsession.h"
24 #include "fonts.h"
25 #include "mainclock.h"
26 #include "mwindow.h"
27 #include "theme.h"
28
29 MainClock::MainClock(MWindow *mwindow, int x, int y, int w)
30  : BC_Title(x, y, "", CLOCKFONT, //MEDIUM_7SEGMENT,
31         mwindow->theme->clock_fg_color, 0, w)
32 {
33         this->mwindow = mwindow;
34         position_offset = 0;
35         set_bg_color(mwindow->theme->clock_bg_color);
36 // *** CONTEXT_HELP ***
37         context_help_set_keyword("Time Format section");
38 }
39
40 MainClock::~MainClock()
41 {
42 }
43
44 void MainClock::set_position_offset(double value)
45 {
46         position_offset = value;
47 }
48
49 void MainClock::update(double position)
50 {
51         lock_window("MainClock::update");
52         char string[BCTEXTLEN];
53         position += position_offset;
54         double timecode_offset =
55                 mwindow->edl->session->time_format == TIME_TIMECODE ?
56                         mwindow->get_timecode_offset() : 0 ;
57         Units::totext(string, position,
58                 mwindow->edl->session->time_format,
59                 mwindow->edl->session->sample_rate,
60                 mwindow->edl->session->frame_rate,
61                 mwindow->edl->session->frames_per_foot,
62                 timecode_offset);
63         BC_Title::update(string);
64         unlock_window();
65 }
66
67 void MainClock::clear()
68 {
69         lock_window("MainClock::clear");
70         BC_Title::update("");
71         unlock_window();
72 }
73