videoview.cpp

00001 #include <gui/MessageBox.h>
00002 #include <gui/MessageQueue.h>
00003 #include <gui/Button.h>
00004 #include <gui/VideoView.h>
00005 #include <gui/TopView.h>
00006 #include <gui/Exceptions.h>
00007 #include <gui/Window.h>
00008 #include <gui/StringView.h>
00009 #include <gui/ApplicationWindow.h>
00010 #include <gui/Application.h>
00011 #include <gui/Menu.h>
00012 #include <gui/TextView.h>
00013 #include <gui/StatusBar.h>
00014 #include <gui/CheckBox.h>
00015 #include <iostream> 
00016 
00017 using namespace SkyGI;
00018 
00019 class MyVideoView : public View
00020 {
00021 public:
00022         MyVideoView(Window *pParent, const Rect &rFrame, unsigned int nWindowLayoutFlags);
00023         void Sized(const Point& pDelta);
00024         VideoView *pVideoView;
00025         void UpdateStatus();
00026 
00027         ISSPlay m_pISSPlay;
00028 
00029 };
00030 
00031 void MyVideoView::Sized(const Point& cDelta)
00032 {
00033         Window::Sized(cDelta);
00034         UpdateStatus();
00035 }
00036 
00037 
00038 void MyVideoView::UpdateStatus()
00039 {
00040         char str[4096];
00041         ISSStream *pStream;
00042 
00043         pStream = m_pISSPlay.GetVideoInputStream();
00044         if (pStream)
00045         {
00046                 sprintf(str, "Video: %dx%d, (Codec: %s)",
00047                         (int)pStream->m_pFormat.pVideo.pSize.x,
00048                         (int)pStream->m_pFormat.pVideo.pSize.y,
00049                         pStream->m_pFormat.szCodec.c_str());
00050 
00051                 if ((Width() != pStream->m_pFormat.pVideo.pSize.x) || (Height() != pStream->m_pFormat.pVideo.pSize.y))
00052                 {
00053                         String temp;
00054                         temp.Format("(scaled to %dx%d) ", Width(), Height());
00055                         strcat(str, temp.c_str());
00056                 }
00057 
00058                 ((ApplicationWindow*)GetTop())->GetStatusBar()->SetText(str);
00059         }
00060 }
00061 
00062 MyVideoView::MyVideoView(Window *pParent, const Rect &rFrame, unsigned int nWindowLayoutFlags) : View(pParent, rFrame, nWindowLayoutFlags)
00063 {
00064         pVideoView = new VideoView(this, Rect(0,0,0,0), WINDOW_LAYOUT_SAME_SIZE);
00065 
00066         pVideoView->SetAutoScale(true);
00067 
00068         m_pISSPlay.Open("/boot/addon/videos/Vehicle Barrier.wmv");
00069 
00070         m_pISSPlay.SetVideoOutputInterface(pVideoView);
00071 
00072         if (m_pISSPlay.IsValid())
00073         {
00074         }
00075 
00076         UpdateStatus();
00077         m_pISSPlay.Play();
00078 }
00079 
00080 void VideoViewTest()
00081 {
00082         Rect r(Point(100, 100), Point(400, 440));
00083 
00084         ApplicationWindow* pApplicationWindow = new ApplicationWindow(r, "VideoView", WINDOW_LAYOUT_NOTHING, APPLICATION_WINDOW_NO_VIEW);
00085         
00086         pApplicationWindow->AddStatusBar();
00087         pApplicationWindow->GetTitleWindow()->SetFlags( (TitleWindowFlags)(pApplicationWindow->GetTitleWindow()->GetFlags() ));
00088         pApplicationWindow->AttachView(new MyVideoView(pApplicationWindow, pApplicationWindow->GetClientRect(), WINDOW_LAYOUT_NOTHING));
00089         pApplicationWindow->Show();
00090 }
00091 

Generated on Thu Dec 13 18:13:11 2007 for SkyGI by  doxygen 1.5.1-p1