#include <smpte.h>
|
Definition at line 100 of file jdkmidi_smpte.cpp.
00104 : 00105 smpte_rate( smpte_rate_ ), 00106 sample_rate( sample_rate_ ), 00107 sample_number( 0 ), 00108 hours(0), 00109 minutes(0), 00110 seconds(0), 00111 frames(0), 00112 sub_frames(0), 00113 sample_number_dirty(false) 00114 { 00115 00116 } |
|
Definition at line 120 of file jdkmidi_smpte.cpp. References Copy().
00123 { 00124 Copy(s); 00125 } |
|
Definition at line 384 of file jdkmidi_smpte.cpp. References GetSampleNumber(), SetSampleNumber(), and ulong.
00385 { 00386 ulong a=GetSampleNumber(); 00387 ulong b=s.GetSampleNumber(); 00388 00389 SetSampleNumber( a+b ); 00390 } |
|
Definition at line 164 of file jdkmidi_smpte.cpp. References AddSamples(), GetSampleRateLong(), and GetSMPTERateLong().
00165 { 00166 AddSamples( 00167 GetSampleRateLong() // samples per second times 10 00168 * f // number of frames 00169 * 10 // times 10 00170 / GetSMPTERateLong() // divide by smpte rate (frames per second) times 100 00171 ); 00172 } |
|
Definition at line 131 of file jdkmidi_smpte.cpp. References AddSamples(), and GetSampleRateLong().
00132 { 00133 AddSamples( GetSampleRateLong()// samples per second times 10 00134 * h * 00135 ( 60 // seconds per minute 00136 * 60 // minutes per hour 00137 / 10 // compensate for freq*10 00138 ) 00139 ); 00140 } |
|
Definition at line 143 of file jdkmidi_smpte.cpp. References AddSamples(), and GetSampleRateLong().
00144 { 00145 AddSamples( 00146 GetSampleRateLong() 00147 * m * // samples per second times 10 00148 ( 60 // seconds per minute 00149 / 10 ) // compensate for freq*10 00150 ); 00151 } |
|
Definition at line 163 of file smpte.h. References GetSampleNumber(), sample_number, and SampleToTime().
00163 { sample_number=GetSampleNumber()+n; SampleToTime(); } |
|
Definition at line 154 of file jdkmidi_smpte.cpp. References AddSamples(), and GetSampleRateLong().
00155 { 00156 AddSamples( 00157 GetSampleRateLong() // samples per second times 10 00158 * s // number of seconds 00159 / 10 // compensate for freq*10 00160 ); 00161 } |
|
Definition at line 175 of file jdkmidi_smpte.cpp. References AddSamples(), GetSampleRateLong(), and GetSMPTERateLong().
00176 { 00177 AddSamples( 00178 GetSampleRateLong() // samples per second times 10 00179 * sf // number of sub frames 00180 / GetSMPTERateLong() // divide by smpte rate (frames per second) times 100 00181 / 10 // divide by 10 to get hundredths of a frame 00182 ); 00183 } |
|
Definition at line 370 of file jdkmidi_smpte.cpp. References GetSampleNumber(), and ulong.
00371 { 00372 ulong a = GetSampleNumber(); 00373 ulong b = s.GetSampleNumber(); 00374 00375 if( a<b ) 00376 return -1; 00377 if( a>b ) 00378 return 1; 00379 00380 return 0; 00381 } |
|
Definition at line 356 of file jdkmidi_smpte.cpp. References frames, hours, minutes, sample_number, sample_number_dirty, sample_rate, seconds, smpte_rate, and sub_frames.
00357 { 00358 smpte_rate=s.smpte_rate; 00359 sample_rate=s.sample_rate; 00360 sample_number=s.sample_number; 00361 hours=s.hours; 00362 minutes=s.minutes; 00363 seconds=s.seconds; 00364 frames=s.frames; 00365 sub_frames=s.sub_frames; 00366 sample_number_dirty=s.sample_number_dirty; 00367 } |
|
Definition at line 175 of file smpte.h. References AddFrames().
00175 { AddFrames(-1); } |
|
Definition at line 172 of file smpte.h. References AddHours().
00172 { AddHours(-1); } |
|
Definition at line 173 of file smpte.h. References AddMinutes().
00173 { AddMinutes(-1); } |
|
Definition at line 177 of file smpte.h. References AddSamples().
00177 { AddSamples(-1); } |
|
Definition at line 174 of file smpte.h. References AddSeconds().
00174 { AddSeconds(-1); } |
|
Definition at line 176 of file smpte.h. References AddSubFrames().
00176 { AddSubFrames(-1); } |
|
Definition at line 149 of file smpte.h.
00149 { return frames; } |
|
Definition at line 146 of file smpte.h.
00146 { return hours; } |
|
Definition at line 147 of file smpte.h. References minutes, and uchar.
00147 { return minutes; } |
|
Definition at line 141 of file smpte.h. References sample_number, sample_number_dirty, TimeToSample(), and ulong.
00141 { if( sample_number_dirty ) TimeToSample(); return sample_number; } |
|
Definition at line 138 of file smpte.h. References sample_rate, and jdkmidi::SAMPLE_RATE.
00138 { return sample_rate; } |
|
Definition at line 201 of file smpte.h. References jdkmidi::GetSampleRateFrequencyLong(), and sample_rate.
00202 { return GetSampleRateFrequencyLong( sample_rate ); } |
|
Definition at line 148 of file smpte.h. References seconds, and uchar.
00148 { return seconds; } |
|
Definition at line 135 of file smpte.h. References smpte_rate, and jdkmidi::SMPTE_RATE.
00135 { return smpte_rate; } |
|
Definition at line 204 of file smpte.h. References jdkmidi::GetSMPTERateFrequencyLong(), and smpte_rate.
00205 { return GetSMPTERateFrequencyLong( smpte_rate ); } |
|
Definition at line 150 of file smpte.h. References sub_frames, and uchar.
00150 { return sub_frames; } |
|
Definition at line 168 of file smpte.h. References AddFrames().
00168 { AddFrames(1); } |
|
Definition at line 165 of file smpte.h. References AddHours().
00165 { AddHours(1); } |
|
Definition at line 166 of file smpte.h. References AddMinutes().
00166 { AddMinutes(1); } |
|
Definition at line 170 of file smpte.h. References AddSamples().
00170 { AddSamples(1); } |
|
Definition at line 167 of file smpte.h. References AddSeconds().
00167 { AddSeconds(1); } |
|
Definition at line 169 of file smpte.h. References AddSubFrames().
00169 { AddSubFrames(1); } |
|
Definition at line 183 of file smpte.h. References Compare().
00183 { return Compare(s)!=0; } |
|
Definition at line 189 of file smpte.h. References Add().
00189 { Add( s ); return *this; } |
|
Definition at line 190 of file smpte.h. References Subtract().
00190 { Subtract( s ); return *this; } |
|
Definition at line 184 of file smpte.h. References Compare().
00184 { return Compare(s)<0; } |
|
Definition at line 186 of file smpte.h. References Compare().
00186 { return Compare(s)<=0; } |
|
Definition at line 181 of file smpte.h. References Copy().
00181 { Copy(s); return *this; } |
|
Definition at line 182 of file smpte.h. References Compare().
00182 { return Compare(s)==0; } |
|
Definition at line 185 of file smpte.h. References Compare().
00185 { return Compare(s)>0; } |
|
Definition at line 187 of file smpte.h. References Compare().
00187 { return Compare(s)>=0; } |
|
Definition at line 187 of file jdkmidi_smpte.cpp. References DBG, frames, hours, minutes, sample_number, sample_rate, seconds, jdkmidi::smpte_max_frames, smpte_rate, jdkmidi::SMPTE_RATE_2997DF, jdkmidi::SMPTE_RATE_30DF, jdkmidi::smpte_sample_rates, jdkmidi::smpte_smpte_rates, sub_frames, uchar, and ulong.
00188 { 00189 // 00190 // make a temporary copy of the sample number 00191 // 00192 00193 ulong tmp_sample=sample_number; 00194 00195 00196 // 00197 // keep track of the actual rates in use in doubles. 00198 // 00199 00200 double the_smpte_rate = smpte_smpte_rates[ smpte_rate ]; 00201 double the_sample_rate = smpte_sample_rates[ sample_rate ]; 00202 00203 // 00204 // keep track of the maximum frame number for this smpte format. 00205 // 00206 00207 uchar max_frame = smpte_max_frames[ smpte_rate ]; 00208 00209 // 00210 // Calculate the number of samples per frame. 00211 // 00212 00213 double samples_per_frame=smpte_sample_rates[ sample_rate ] / smpte_smpte_rates[ smpte_rate ]; 00214 00215 // 00216 // if the smpte rate is a drop frame type, calculate the number 00217 // of frames that must be dropped. 00218 // 00219 00220 if( smpte_rate==SMPTE_RATE_30DF || smpte_rate==SMPTE_RATE_2997DF ) 00221 { 00222 // 00223 // Calculate number of minutes that have gone by 00224 // 00225 00226 // short num_minutes = (short)((double)tmp_sample/(smpte_sample_rates[sample_rate]))/60; 00227 int num_minutes = tmp_sample/(48000*60); 00228 00229 DBG( printf( "num_minutes=%d\n", (int)num_minutes ) ); 00230 00231 // 00232 // Calculate the number of tens of minutes that have gone by, including minute 00 00233 // 00234 00235 int ten_minutes = num_minutes/10; 00236 00237 DBG( printf( "ten_minutes=%d\n", (int)ten_minutes) ); 00238 00239 // 00240 // Calculate the number of frames that are dropped by this 00241 // time. 00242 // 00243 00244 int drops=(num_minutes - ten_minutes)*2; 00245 00246 DBG( printf( "drops=%d\n", (int)drops ) ); 00247 00248 // 00249 // Offset the tmp_sample number by this amount of frames. 00250 // 00251 00252 DBG( printf( "tmp_sample before drops=%ld\n", (long)tmp_sample ) ); 00253 00254 tmp_sample+=(ulong)(drops*samples_per_frame); 00255 00256 DBG( printf( "tmp_sample after drops=%ld\n", (long)tmp_sample ) ); 00257 } 00258 00259 // 00260 // Calculate the time in sub frames, frames, seconds, minutes, hours 00261 // 00262 00263 ulong rounded_sub_frames= (ulong)((tmp_sample*the_smpte_rate * 100)/the_sample_rate +.5); 00264 00265 DBG( printf( "rounded_sub_frames = %ld\n", rounded_sub_frames ) ); 00266 00267 sub_frames = (uchar) ((rounded_sub_frames)%100); 00268 frames = (uchar) ((rounded_sub_frames/100) % max_frame); 00269 seconds = (uchar) ((rounded_sub_frames/(100L*max_frame)) % 60 ); 00270 minutes = (uchar) ((rounded_sub_frames/(100L*60L*max_frame)) % 60 ); 00271 hours = (uchar) ((rounded_sub_frames/(100L*60L*24L*max_frame)) % 24 ); 00272 00273 } |
|
Definition at line 155 of file smpte.h. References frames, sample_number_dirty, and uchar.
00155 { frames=f; sample_number_dirty=true; } |
|
Definition at line 152 of file smpte.h. References hours, sample_number_dirty, and uchar.
00152 { hours=h; sample_number_dirty=true; } |
|
Definition at line 153 of file smpte.h. References minutes, sample_number_dirty, and uchar.
00153 { minutes=m; sample_number_dirty=true; } |
|
Definition at line 140 of file smpte.h. References sample_number, SampleToTime(), and ulong.
00140 { sample_number=n; SampleToTime(); } |
|
Definition at line 137 of file smpte.h. References sample_number_dirty, and sample_rate.
00137 { sample_rate=r; sample_number_dirty=true; } |
|
Definition at line 154 of file smpte.h. References sample_number_dirty, seconds, and uchar.
00154 { seconds=s; sample_number_dirty=true; } |
|
Definition at line 134 of file smpte.h. References sample_number_dirty, and smpte_rate.
00134 { smpte_rate=r; sample_number_dirty=true; } |
|
Definition at line 156 of file smpte.h. References sample_number_dirty, sub_frames, and uchar.
00156 { sub_frames=sf; sample_number_dirty=true; } |
|
Definition at line 143 of file smpte.h. References frames, hours, minutes, sample_number_dirty, seconds, sub_frames, and uchar.
00144 { hours=h; minutes=m; seconds=s; frames=f; sub_frames=sf; sample_number_dirty=true; } |
|
Definition at line 392 of file jdkmidi_smpte.cpp. References GetSampleNumber(), SetSampleNumber(), and ulong.
00393 { 00394 ulong a=GetSampleNumber(); 00395 ulong b=s.GetSampleNumber(); 00396 00397 SetSampleNumber( a-b ); 00398 } |
|
Definition at line 276 of file jdkmidi_smpte.cpp. References DBG, frames, hours, minutes, sample_number, sample_rate, seconds, smpte_rate, jdkmidi::SMPTE_RATE_2997DF, jdkmidi::SMPTE_RATE_30DF, jdkmidi::smpte_sample_rates, jdkmidi::smpte_smpte_rates, sub_frames, and ulong.
00277 { 00278 00279 // 00280 // keep track of the actual rates in use in doubles. 00281 // 00282 00283 double the_smpte_rate = smpte_smpte_rates[ smpte_rate ]; 00284 double the_sample_rate = smpte_sample_rates[ sample_rate ]; 00285 00286 // 00287 // optimize a coupla similiar double divides by calculating it once. 00288 // 00289 00290 double samples_per_frame=the_sample_rate / the_smpte_rate; 00291 00292 // 00293 // calculate the sample number 00294 // 00295 00296 double tmp_sample = (double) ( 00297 ( (hours * the_sample_rate * (60 * 60) ) 00298 + (minutes * the_sample_rate * 60 ) 00299 + (seconds * the_sample_rate ) 00300 + (frames * samples_per_frame ) 00301 + (sub_frames * samples_per_frame * (1.0/100.0) ) +.5) 00302 ); 00303 00304 // 00305 // Now compensate for Drop Frame mode if we are in drop frame mode. 00306 // 00307 00308 if( smpte_rate == SMPTE_RATE_30DF || smpte_rate==SMPTE_RATE_2997DF ) 00309 { 00310 // 00311 // Calculate number of minutes that have gone by 00312 // 00313 00314 int num_minutes = (int)((double)tmp_sample/(smpte_sample_rates[sample_rate]*60)); 00315 00316 DBG( printf( "num_minutes=%d\n", (int)num_minutes ) ); 00317 00318 // 00319 // Calculate the number of tens of minutes that have gone by, including minute 00 00320 // 00321 00322 int ten_minutes = num_minutes/10; 00323 00324 DBG( printf( "ten_minutes=%d\n", (int)ten_minutes) ); 00325 00326 // 00327 // Calculate the number of frames that are dropped by this 00328 // time. 00329 // 00330 00331 int drops=(num_minutes - ten_minutes)*2; 00332 00333 DBG( printf( "drops=%d\n", (int)drops ) ); 00334 00335 // 00336 // Offset the tmp_sample number by this amount of frames. 00337 // 00338 00339 DBG( printf( "tmp_sample before drops=%ld\n", (long)tmp_sample ) ); 00340 00341 tmp_sample-=drops*samples_per_frame; 00342 00343 DBG( printf( "tmp_sample after drops=%ld\n", (long)tmp_sample ) ); 00344 00345 } 00346 00347 // 00348 // save the calculated sample number in self. 00349 // 00350 00351 sample_number=(ulong)tmp_sample; 00352 } |
|
Definition at line 224 of file smpte.h.
00225 { 00226 SMPTE c(a); 00227 00228 c+=b; 00229 return c; 00230 } |
|
Definition at line 232 of file smpte.h.
00233 { 00234 SMPTE c(a); 00235 00236 c-=b; 00237 return c; 00238 } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|