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