| 63 | * Create class !AudioBookResource extending !MediaBookResource it should: |
| 64 | * have constructors to which the audio can be passed as File or !BinData. |
| 65 | * the method getResourceKind should return "audio-resource". |
| 66 | |
| 67 | * Create class !AudioFrameContent extending !FrameContent it should: |
| 68 | * implement the mainResource property of !FrameContent with template type !AudioBookResource. |
| 69 | |
| 70 | * Move !AudioHandler to org.sophie2.base.scene so that it can be used by !AudioSceneElement. Change !AudioHandler so that it extends !MediaHandler and is empty (for now). |
| 71 | |
| 72 | * Create interface !AudioSceneElement extending !MediaSceneElement. It is an interface describing a scene element containg audio. It should override the handler property of !MediaSceneElement with template type !AudioHandler. |
| 73 | |
| 74 | * Create class !AudioContentView extending !MediaContentView it should: |
| 75 | * implement the model property with template type !AudioFrameContent. |
| 76 | * implement the element property with template type extending !AudioSceneElement. |
| 77 | * the concrete implementation of !AudioSceneElement should implement handler as an !AutoProperty depending on model. |
| 78 | * implement AudioHandler so that !AudioSceneElement can be implemented. |
| 79 | |
| 80 | * Add code to the static method createAppropriateContent of !FrameFactory so that it returns !AudioFrameContent if the resource passed to it is of type !AudioBookResource. |
| 81 | * Add code to the method create of org.sophie2.main.model.book.format.r1.ResourceLoader and org.sophie2.main.model.book.format.r2.ResourceLoader so that it returns !AudioBookResource if the Storage passed to it contains "AudioBookResource". |