MEDIA_ENGINE_IMPL_MAIN_R0: SimpleSceneRedrawVideoDemoTest.java

File SimpleSceneRedrawVideoDemoTest.java, 3.5 KB (added by nenko, 16 years ago)
Line 
1import java.io.File;
2import java.io.IOException;
3
4import org.sophie2.base.commons.util.position.ImmRect;
5import org.sophie2.base.layout.BaseLayoutModule;
6import org.sophie2.base.layout.LayoutEngine;
7import org.sophie2.base.media.BaseMediaModule;
8import org.sophie2.base.media.MasterVideoEngine;
9import org.sophie2.base.media.engines.VideoEngine;
10import org.sophie2.base.media.interfaces.BinDataSource;
11import org.sophie2.base.media.interfaces.MediaSource;
12import org.sophie2.base.model.book.Book;
13import org.sophie2.base.model.book.Frame;
14import org.sophie2.base.model.book.Page;
15import org.sophie2.base.model.resources.ResourceSpace;
16import org.sophie2.base.skins.BaseSkinsModule;
17import org.sophie2.base.visual.BaseVisualModule;
18import org.sophie2.core.modularity.FakeModuleRegistry;
19import org.sophie2.core.mvc.CoreMvcModule;
20import org.sophie2.main.app.commons.MainAppModule;
21import org.sophie2.main.app.commons.app.AppDocumentsDesktop;
22import org.sophie2.main.app.commons.app.AppMainWindow;
23import org.sophie2.main.app.commons.book.BookDocumentWindow;
24import org.sophie2.main.app.commons.logic.AppLogic;
25import org.sophie2.main.app.commons.page.areas.PageWorkArea;
26import org.sophie2.main.app.model.MainAppModelModule;
27import org.sophie2.main.app.model.frame.FrameFactory;
28import org.sophie2.main.func.media.model.resources.VideoBookResource;
29import org.sophie2.main.layout.mydoggy.LayoutMyDoggyModule;
30import org.sophie2.main.media.fobs.MainMediaImplModule;
31import org.sophie2.main.scene.simple.MainSceneSimpleModule;
32
33/**
34 * Demonstrates redrawing of the simple scene engine when there's a video frame
35 * and its state is playing
36 *
37 * You should find a suitable video and update videoFile reference in order to
38 * play it
39 *
40 * @author nenko
41 *
42 */
43public class SimpleSceneRedrawVideoDemoTest {
44
45        private BookDocumentWindow bdw;
46
47        public static void main(String[] args) {
48                new SimpleSceneRedrawVideoDemoTest().demo();
49        }
50
51        public SimpleSceneRedrawVideoDemoTest() {
52                FakeModuleRegistry.start(MainAppModelModule.class,
53                                BaseMediaModule.class, MainAppModule.class,
54                                MainMediaImplModule.class, LayoutMyDoggyModule.class,
55                                MainSceneSimpleModule.class, BaseLayoutModule.class,
56                                BaseVisualModule.class, BaseSkinsModule.class,
57                                CoreMvcModule.class, MainFuncMediaModule.class);
58
59                LayoutEngine e = BaseLayoutModule.get().showDefaultEngine();
60                AppMainWindow mw = (AppMainWindow) e.mainWindows().get(0);
61                AppLogic.get().userCreateNewBook(mw.appView().get());
62
63                this.bdw = (BookDocumentWindow) ((AppDocumentsDesktop) e.mainWindows()
64                                .get(0).booksDesktop().get()).currentWindow().get();
65                this.bdw.workArea().get();
66                this.bdw.workArea().get().swingComponent().get();
67        }
68
69        /**
70         * Tests the overall functioning of the links mechanism
71         */
72        private void demo() {
73                try {
74                        File videoFile = new File();
75                        Book book = ResourceSpace.createResource(Book.class);
76                        VideoBookResource videoRes = ResourceSpace.createResource(videoFile
77                                        .getName(), VideoBookResource.class, book);
78                        MediaSource source = new BinDataSource(videoFile);
79                        videoRes.source().set(source);
80                        VideoEngine engine = MasterVideoEngine.get();
81                        videoRes.info().set(engine.getInfo(source));
82
83                        PageWorkArea pageWorkArea = this.bdw.workArea().get();
84                        Page page = pageWorkArea.page().get();
85
86                        Frame videoFrame = page.addNewFrame(Frame.DEFAULT_FRAME_NAME);
87                        videoFrame.content().set(
88                                        FrameFactory.createAppropriateContent(videoRes));
89                        videoFrame.bounds().set(
90                                        new ImmRect(Frame.DEFAULT_FRAME_LOCATION,
91                                                        Frame.DEFAULT_FRAME_SIZE));
92                } catch (final IOException e) {
93                        e.printStackTrace();
94                }
95        }
96}