~ubuntu-branches/ubuntu/utopic/ardour3/utopic

« back to all changes in this revision

Viewing changes to gtk2_ardour/timecode_tester.cc

  • Committer: Package Import Robot
  • Author(s): Felipe Sateler
  • Date: 2013-09-21 19:05:02 UTC
  • Revision ID: package-import@ubuntu.com-20130921190502-8gsftrku6jnzhd7v
Tags: upstream-3.4~dfsg
ImportĀ upstreamĀ versionĀ 3.4~dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
    Copyright (C) 2012 Paul Davis 
 
3
 
 
4
    This program is free software; you can redistribute it and/or modify
 
5
    it under the terms of the GNU General Public License as published by
 
6
    the Free Software Foundation; either version 2 of the License, or
 
7
    (at your option) any later version.
 
8
 
 
9
    This program is distributed in the hope that it will be useful,
 
10
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
    GNU General Public License for more details.
 
13
 
 
14
    You should have received a copy of the GNU General Public License
 
15
    along with this program; if not, write to the Free Software
 
16
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
17
 
 
18
*/
 
19
 
 
20
void
 
21
AudioClock::timecode_tester ()
 
22
{
 
23
#if 0
 
24
#define Timecode_SAMPLE_TEST_1
 
25
#define Timecode_SAMPLE_TEST_2
 
26
#define Timecode_SAMPLE_TEST_3
 
27
#define Timecode_SAMPLE_TEST_4
 
28
#define Timecode_SAMPLE_TEST_5
 
29
#define Timecode_SAMPLE_TEST_6
 
30
#define Timecode_SAMPLE_TEST_7
 
31
 
 
32
        // Testcode for timecode<->sample conversions (P.S.)
 
33
        Timecode::Time timecode1;
 
34
        framepos_t sample1;
 
35
        framepos_t oldsample = 0;
 
36
        Timecode::Time timecode2;
 
37
        framecnt_t sample_increment;
 
38
 
 
39
        sample_increment = (framecnt_t)rint(_session->frame_rate() / _session->timecode_frames_per_second);
 
40
 
 
41
#ifdef Timecode_SAMPLE_TEST_1
 
42
        // Test 1: use_offset = false, use_subframes = false
 
43
        cout << "use_offset = false, use_subframes = false" << endl;
 
44
        for (int i = 0; i < 108003; i++) {
 
45
                _session->timecode_to_sample( timecode1, sample1, false /* use_offset */, false /* use_subframes */ );
 
46
                _session->sample_to_timecode( sample1, timecode2, false /* use_offset */, false /* use_subframes */ );
 
47
 
 
48
                if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1)))) {
 
49
                        cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
 
50
                        cout << "timecode1: " << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
51
                        cout << "sample: " << sample1 << endl;
 
52
                        cout << "sample: " << sample1 << " -> ";
 
53
                        cout << "timecode2: " << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
54
                        break;
 
55
                }
 
56
 
 
57
                if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
 
58
                        cout << "ERROR: timecode2 not equal timecode1" << endl;
 
59
                        cout << "timecode1: " << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
60
                        cout << "sample: " << sample1 << endl;
 
61
                        cout << "sample: " << sample1 << " -> ";
 
62
                        cout << "timecode2: " << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
63
                        break;
 
64
                }
 
65
                oldsample = sample1;
 
66
                _session->timecode_increment( timecode1 );
 
67
        }
 
68
 
 
69
        cout << "sample_increment: " << sample_increment << endl;
 
70
        cout << "sample: " << sample1 << " -> ";
 
71
        cout << "timecode: " << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
72
#endif
 
73
 
 
74
#ifdef Timecode_SAMPLE_TEST_2
 
75
        // Test 2: use_offset = true, use_subframes = false
 
76
        cout << "use_offset = true, use_subframes = false" << endl;
 
77
 
 
78
        timecode1.hours = 0;
 
79
        timecode1.minutes = 0;
 
80
        timecode1.seconds = 0;
 
81
        timecode1.frames = 0;
 
82
        timecode1.subframes = 0;
 
83
        sample1 = oldsample = 0;
 
84
 
 
85
        _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
 
86
        cout << "Starting at sample: " << sample1 << " -> ";
 
87
        cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
 
88
 
 
89
        for (int i = 0; i < 108003; i++) {
 
90
                _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
 
91
                _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
 
92
 
 
93
//     cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
94
//     cout << "sample: " << sample1 << endl;
 
95
//     cout << "sample: " << sample1 << " -> ";
 
96
//     cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
97
 
 
98
                if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1)))) {
 
99
                        cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
 
100
                        cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
101
                        cout << "sample: " << sample1 << endl;
 
102
                        cout << "sample: " << sample1 << " -> ";
 
103
                        cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
104
                        break;
 
105
                }
 
106
 
 
107
                if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
 
108
                        cout << "ERROR: timecode2 not equal timecode1" << endl;
 
109
                        cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
110
                        cout << "sample: " << sample1 << endl;
 
111
                        cout << "sample: " << sample1 << " -> ";
 
112
                        cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
113
                        break;
 
114
                }
 
115
                oldsample = sample1;
 
116
                _session->timecode_increment( timecode1 );
 
117
        }
 
118
 
 
119
        cout << "sample_increment: " << sample_increment << endl;
 
120
        cout << "sample: " << sample1 << " -> ";
 
121
        cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
122
#endif
 
123
 
 
124
#ifdef Timecode_SAMPLE_TEST_3
 
125
        // Test 3: use_offset = true, use_subframes = false, decrement
 
126
        cout << "use_offset = true, use_subframes = false, decrement" << endl;
 
127
 
 
128
        _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
 
129
        cout << "Starting at sample: " << sample1 << " -> ";
 
130
        cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
 
131
 
 
132
        for (int i = 0; i < 108003; i++) {
 
133
                _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
 
134
                _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
 
135
 
 
136
//     cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
137
//     cout << "sample: " << sample1 << endl;
 
138
//     cout << "sample: " << sample1 << " -> ";
 
139
//     cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
140
 
 
141
                if ((i > 0) && ( ((oldsample - sample1) != sample_increment) && ((oldsample - sample1) != (sample_increment + 1)) && ((oldsample - sample1) != (sample_increment - 1)))) {
 
142
                        cout << "ERROR: sample increment not right: " << (oldsample - sample1) << " != " << sample_increment << endl;
 
143
                        cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
144
                        cout << "sample: " << sample1 << endl;
 
145
                        cout << "sample: " << sample1 << " -> ";
 
146
                        cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
147
                        break;
 
148
                }
 
149
 
 
150
                if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
 
151
                        cout << "ERROR: timecode2 not equal timecode1" << endl;
 
152
                        cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
153
                        cout << "sample: " << sample1 << endl;
 
154
                        cout << "sample: " << sample1 << " -> ";
 
155
                        cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
156
                        break;
 
157
                }
 
158
                oldsample = sample1;
 
159
                _session->timecode_decrement( timecode1 );
 
160
        }
 
161
 
 
162
        cout << "sample_decrement: " << sample_increment << endl;
 
163
        cout << "sample: " << sample1 << " -> ";
 
164
        cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
165
#endif
 
166
 
 
167
 
 
168
#ifdef Timecode_SAMPLE_TEST_4
 
169
        // Test 4: use_offset = true, use_subframes = true
 
170
        cout << "use_offset = true, use_subframes = true" << endl;
 
171
 
 
172
        for (long sub = 5; sub < 80; sub += 5) {
 
173
                timecode1.hours = 0;
 
174
                timecode1.minutes = 0;
 
175
                timecode1.seconds = 0;
 
176
                timecode1.frames = 0;
 
177
                timecode1.subframes = 0;
 
178
                sample1 = oldsample = (sample_increment * sub) / 80;
 
179
 
 
180
                _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, true /* use_subframes */ );
 
181
 
 
182
                cout << "starting at sample: " << sample1 << " -> ";
 
183
                cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
 
184
 
 
185
                for (int i = 0; i < 108003; i++) {
 
186
                        _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, true /* use_subframes */ );
 
187
                        _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, true /* use_subframes */ );
 
188
 
 
189
                        if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1)))) {
 
190
                                cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
 
191
                                cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
192
                                cout << "sample: " << sample1 << endl;
 
193
                                cout << "sample: " << sample1 << " -> ";
 
194
                                cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
195
                                //break;
 
196
                        }
 
197
 
 
198
                        if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames || timecode2.subframes != timecode1.subframes) {
 
199
                                cout << "ERROR: timecode2 not equal timecode1" << endl;
 
200
                                cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
201
                                cout << "sample: " << sample1 << endl;
 
202
                                cout << "sample: " << sample1 << " -> ";
 
203
                                cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
204
                                break;
 
205
                        }
 
206
                        oldsample = sample1;
 
207
                        _session->timecode_increment( timecode1 );
 
208
                }
 
209
 
 
210
                cout << "sample_increment: " << sample_increment << endl;
 
211
                cout << "sample: " << sample1 << " -> ";
 
212
                cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
213
 
 
214
                for (int i = 0; i < 108003; i++) {
 
215
                        _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, true /* use_subframes */ );
 
216
                        _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, true /* use_subframes */ );
 
217
 
 
218
                        if ((i > 0) && ( ((oldsample - sample1) != sample_increment) && ((oldsample - sample1) != (sample_increment + 1)) && ((oldsample - sample1) != (sample_increment - 1)))) {
 
219
                                cout << "ERROR: sample increment not right: " << (oldsample - sample1) << " != " << sample_increment << endl;
 
220
                                cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
221
                                cout << "sample: " << sample1 << endl;
 
222
                                cout << "sample: " << sample1 << " -> ";
 
223
                                cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
224
                                //break;
 
225
                        }
 
226
 
 
227
                        if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames || timecode2.subframes != timecode1.subframes) {
 
228
                                cout << "ERROR: timecode2 not equal timecode1" << endl;
 
229
                                cout << "timecode1: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
230
                                cout << "sample: " << sample1 << endl;
 
231
                                cout << "sample: " << sample1 << " -> ";
 
232
                                cout << "timecode2: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
233
                                break;
 
234
                        }
 
235
                        oldsample = sample1;
 
236
                        _session->timecode_decrement( timecode1 );
 
237
                }
 
238
 
 
239
                cout << "sample_decrement: " << sample_increment << endl;
 
240
                cout << "sample: " << sample1 << " -> ";
 
241
                cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
242
        }
 
243
#endif
 
244
 
 
245
 
 
246
#ifdef Timecode_SAMPLE_TEST_5
 
247
        // Test 5: use_offset = true, use_subframes = false, increment seconds
 
248
        cout << "use_offset = true, use_subframes = false, increment seconds" << endl;
 
249
 
 
250
        timecode1.hours = 0;
 
251
        timecode1.minutes = 0;
 
252
        timecode1.seconds = 0;
 
253
        timecode1.frames = 0;
 
254
        timecode1.subframes = 0;
 
255
        sample1 = oldsample = 0;
 
256
        sample_increment = _session->frame_rate();
 
257
 
 
258
        _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
 
259
        cout << "Starting at sample: " << sample1 << " -> ";
 
260
        cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
 
261
 
 
262
        for (int i = 0; i < 3600; i++) {
 
263
                _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
 
264
                _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
 
265
 
 
266
//     cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
267
//     cout << "sample: " << sample1 << endl;
 
268
//     cout << "sample: " << sample1 << " -> ";
 
269
//     cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
270
 
 
271
//     if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1))))
 
272
//     {
 
273
//       cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
 
274
//       break;
 
275
//     }
 
276
 
 
277
                if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
 
278
                        cout << "ERROR: timecode2 not equal timecode1" << endl;
 
279
                        cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
280
                        cout << "sample: " << sample1 << endl;
 
281
                        cout << "sample: " << sample1 << " -> ";
 
282
                        cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
283
                        break;
 
284
                }
 
285
                oldsample = sample1;
 
286
                _session->timecode_increment_seconds( timecode1 );
 
287
        }
 
288
 
 
289
        cout << "sample_increment: " << sample_increment << endl;
 
290
        cout << "sample: " << sample1 << " -> ";
 
291
        cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
292
#endif
 
293
 
 
294
 
 
295
#ifdef Timecode_SAMPLE_TEST_6
 
296
        // Test 6: use_offset = true, use_subframes = false, increment minutes
 
297
        cout << "use_offset = true, use_subframes = false, increment minutes" << endl;
 
298
 
 
299
        timecode1.hours = 0;
 
300
        timecode1.minutes = 0;
 
301
        timecode1.seconds = 0;
 
302
        timecode1.frames = 0;
 
303
        timecode1.subframes = 0;
 
304
        sample1 = oldsample = 0;
 
305
        sample_increment = _session->frame_rate() * 60;
 
306
 
 
307
        _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
 
308
        cout << "Starting at sample: " << sample1 << " -> ";
 
309
        cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
 
310
 
 
311
        for (int i = 0; i < 60; i++) {
 
312
                _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
 
313
                _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
 
314
 
 
315
//     cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
316
//     cout << "sample: " << sample1 << endl;
 
317
//     cout << "sample: " << sample1 << " -> ";
 
318
//     cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
319
 
 
320
//     if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1))))
 
321
//     {
 
322
//       cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
 
323
//       break;
 
324
//     }
 
325
 
 
326
                if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
 
327
                        cout << "ERROR: timecode2 not equal timecode1" << endl;
 
328
                        cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
329
                        cout << "sample: " << sample1 << endl;
 
330
                        cout << "sample: " << sample1 << " -> ";
 
331
                        cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
332
                        break;
 
333
                }
 
334
                oldsample = sample1;
 
335
                _session->timecode_increment_minutes( timecode1 );
 
336
        }
 
337
 
 
338
        cout << "sample_increment: " << sample_increment << endl;
 
339
        cout << "sample: " << sample1 << " -> ";
 
340
        cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
341
#endif
 
342
 
 
343
#ifdef Timecode_SAMPLE_TEST_7
 
344
        // Test 7: use_offset = true, use_subframes = false, increment hours
 
345
        cout << "use_offset = true, use_subframes = false, increment hours" << endl;
 
346
 
 
347
        timecode1.hours = 0;
 
348
        timecode1.minutes = 0;
 
349
        timecode1.seconds = 0;
 
350
        timecode1.frames = 0;
 
351
        timecode1.subframes = 0;
 
352
        sample1 = oldsample = 0;
 
353
        sample_increment = _session->frame_rate() * 60 * 60;
 
354
 
 
355
        _session->sample_to_timecode( sample1, timecode1, true /* use_offset */, false /* use_subframes */ );
 
356
        cout << "Starting at sample: " << sample1 << " -> ";
 
357
        cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << endl;
 
358
 
 
359
        for (int i = 0; i < 10; i++) {
 
360
                _session->timecode_to_sample( timecode1, sample1, true /* use_offset */, false /* use_subframes */ );
 
361
                _session->sample_to_timecode( sample1, timecode2, true /* use_offset */, false /* use_subframes */ );
 
362
 
 
363
//     cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
364
//     cout << "sample: " << sample1 << endl;
 
365
//     cout << "sample: " << sample1 << " -> ";
 
366
//     cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
367
 
 
368
//     if ((i > 0) && ( ((sample1 - oldsample) != sample_increment) && ((sample1 - oldsample) != (sample_increment + 1)) && ((sample1 - oldsample) != (sample_increment - 1))))
 
369
//     {
 
370
//       cout << "ERROR: sample increment not right: " << (sample1 - oldsample) << " != " << sample_increment << endl;
 
371
//       break;
 
372
//     }
 
373
 
 
374
                if (timecode2.hours != timecode1.hours || timecode2.minutes != timecode1.minutes || timecode2.seconds != timecode2.seconds || timecode2.frames != timecode1.frames) {
 
375
                        cout << "ERROR: timecode2 not equal timecode1" << endl;
 
376
                        cout << "timecode: " << (timecode1.negative ? "-" : "") << timecode1.hours << ":" << timecode1.minutes << ":" << timecode1.seconds << ":" << timecode1.frames << "::" << timecode1.subframes << " -> ";
 
377
                        cout << "sample: " << sample1 << endl;
 
378
                        cout << "sample: " << sample1 << " -> ";
 
379
                        cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
380
                        break;
 
381
                }
 
382
                oldsample = sample1;
 
383
                _session->timecode_increment_hours( timecode1 );
 
384
        }
 
385
 
 
386
        cout << "sample_increment: " << sample_increment << endl;
 
387
        cout << "sample: " << sample1 << " -> ";
 
388
        cout << "timecode: " << (timecode2.negative ? "-" : "") << timecode2.hours << ":" << timecode2.minutes << ":" << timecode2.seconds << ":" << timecode2.frames << "::" << timecode2.subframes << endl;
 
389
#endif
 
390
 
 
391
#endif
 
392
}