1 | package org.farng.mp3.id3; |
2 | |
3 | /** |
4 | * <p> For a more accurate description of the tempo of a musical piece, this<br> frame might be |
5 | * used. After the header follows one byte describing<br> which time stamp format should be used. Then |
6 | * follows one or more<br> |
7 | * <p/> |
8 | * tempo codes. Each tempo code consists of one tempo part and one time<br> part. The tempo is |
9 | * in BPM described with one or two bytes. If the<br> first byte has the value $FF, one more byte follows, |
10 | * which is added<br> to the first giving a range from 2 - 510 BPM, since $00 and $01 is<br> |
11 | * reserved. $00 is used to describe a beat-free time period, which is<br> |
12 | * <p/> |
13 | * not the same as a music-free time period. $01 is used to indicate one<br> single |
14 | * beat-stroke followed by a beat-free period.</p> |
15 | * <p/> |
16 | * <p> The tempo descriptor is followed by a time stamp. Every time the<br> tempo in the music |
17 | * changes, a tempo descriptor may indicate this for<br> the player. All tempo descriptors MUST be sorted |
18 | * in chronological<br> |
19 | * <p/> |
20 | * order. The first beat-stroke in a time-period is at the same time as<br> the beat |
21 | * description occurs. There may only be one "SYTC" frame in<br> each tag.</p> |
22 | * <p/> |
23 | * <p> <Header for 'Synchronised tempo codes', ID: "SYTC"><br> |
24 | * Time stamp format $xx<br> Tempo |
25 | * data <binary data></p> |
26 | * <p/> |
27 | * <p> Where time stamp format is:</p> |
28 | * <p/> |
29 | * <p> $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit<br> |
30 | * $02 Absolute time, 32 bit sized, using milliseconds as unit</p> |
31 | * <p/> |
32 | * <p> Absolute time means that every stamp contains the time from the<br> |
33 | * <p/> |
34 | * beginning of the file.<br> </p> |
35 | * |
36 | * @author Eric Farng |
37 | * @version $Revision: 1.3 $ |
38 | */ |
39 | public class FrameBodySYTC extends AbstractID3v2FrameBody { |
40 | |
41 | /** |
42 | * Creates a new FrameBodySYTC object. |
43 | */ |
44 | public FrameBodySYTC() { |
45 | super(); |
46 | } |
47 | |
48 | /** |
49 | * Creates a new FrameBodySYTC object. |
50 | */ |
51 | public FrameBodySYTC(final FrameBodySYTC body) { |
52 | super(body); |
53 | } |
54 | |
55 | protected void setupObjectList() { |
56 | throw new UnsupportedOperationException("This frame has not been implemented."); |
57 | } |
58 | |
59 | public String getIdentifier() { |
60 | throw new UnsupportedOperationException("This frame has not been implemented."); |
61 | } |
62 | } |