javauis/mmapi_qt/baseline/src.dsa/cmmadsawindow.cpp
changeset 26 dc7c549001d5
parent 23 98ccebc37403
equal deleted inserted replaced
23:98ccebc37403 26:dc7c549001d5
    38 }
    38 }
    39 
    39 
    40 // Destructor (virtual by CBase)
    40 // Destructor (virtual by CBase)
    41 CMMADSAWindow::~CMMADSAWindow()
    41 CMMADSAWindow::~CMMADSAWindow()
    42 {
    42 {
    43     LOG( EJavaMMAPI, EInfo, "CMMADSAWindow::~CMMADSAWindow");
    43     LOG(EJavaMMAPI, EInfo, "CMMADSAWindow::~CMMADSAWindow");
    44 }
    44 }
    45 
    45 
    46 CMMADSAWindow::CMMADSAWindow(
    46 CMMADSAWindow::CMMADSAWindow(
    47     MMAFunctionServer* aEventSource,
    47     MMAFunctionServer* aEventSource,
    48     CMMAPlayer* aPlayer,
    48     CMMAPlayer* aPlayer,
   102                            iPlayer);
   102                            iPlayer);
   103 }
   103 }
   104 
   104 
   105 void CMMADSAWindow::SetDrawRect(const TRect& aRect)
   105 void CMMADSAWindow::SetDrawRect(const TRect& aRect)
   106 {
   106 {
   107     LOG2( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect TL %d %d",
   107     LOG2(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect TL %d %d",
   108                aRect.iTl.iX, aRect.iTl.iY);
   108          aRect.iTl.iX, aRect.iTl.iY);
   109     LOG2( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect BR %d %d",
   109     LOG2(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect BR %d %d",
   110                aRect.iBr.iX, aRect.iBr.iY);
   110          aRect.iBr.iX, aRect.iBr.iY);
   111 
   111 
   112     // setting video draw rect and adjusting it to window
   112     // setting video draw rect and adjusting it to window
   113     iDrawRect = aRect;
   113     iDrawRect = aRect;
   114     TRect drawRect = iDrawRect;
   114     TRect drawRect = iDrawRect;
   115     drawRect.Move(iClientRect.iTl);
   115     drawRect.Move(iClientRect.iTl);
   116 
   116 
   117     if (!iVideoPlayControllerCustomCommands)
   117     if (!iVideoPlayControllerCustomCommands)
   118     {
   118     {
   119         LOG( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: no VideoPlayControllerCustomCommands set, aborting -");
   119         LOG(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: no VideoPlayControllerCustomCommands set, aborting -");
   120         return;
   120         return;
   121     }
   121     }
   122 
   122 
   123     if (iVisible)
   123     if (iVisible)
   124     {
   124     {
   125         LOG( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: Abort DSA");
   125         LOG(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: Abort DSA");
   126         iVideoPlayControllerCustomCommands->DirectScreenAccessEvent(EAbortDSA);
   126         iVideoPlayControllerCustomCommands->DirectScreenAccessEvent(EAbortDSA);
   127     }
   127     }
   128 
   128 
   129     LOG2( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: drawRect TL %d %d",
   129     LOG2(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: drawRect TL %d %d",
   130                drawRect.iTl.iX, drawRect.iTl.iY);
   130          drawRect.iTl.iX, drawRect.iTl.iY);
   131     LOG2( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: drawRect BR %d %d",
   131     LOG2(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: drawRect BR %d %d",
   132                drawRect.iBr.iX, drawRect.iBr.iY);
   132          drawRect.iBr.iX, drawRect.iBr.iY);
   133 
   133 
   134     // Area where should be drawn is the intersection of drawRect and iClientRect.
   134     // Area where should be drawn is the intersection of drawRect and iClientRect.
   135     TRect areaRect = iClientRect;
   135     TRect areaRect = iClientRect;
   136     areaRect.Intersection(drawRect);
   136     areaRect.Intersection(drawRect);
   137 
   137 
   138     LOG2( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: areaRect TL %d %d",
   138     LOG2(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: areaRect TL %d %d",
   139                areaRect.iTl.iX, areaRect.iTl.iY);
   139          areaRect.iTl.iX, areaRect.iTl.iY);
   140     LOG2( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: areaRect BR %d %d",
   140     LOG2(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: areaRect BR %d %d",
   141                areaRect.iBr.iX, areaRect.iBr.iY);
   141          areaRect.iBr.iX, areaRect.iBr.iY);
   142 
   142 
   143     if (iVisible && !iDSAAborted)
   143     if (iVisible && !iDSAAborted)
   144     {
   144     {
   145         LOG( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: SetDisplayWindow( drawRect, areaRect )");
   145         LOG(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: SetDisplayWindow( drawRect, areaRect )");
   146         iVideoPlayControllerCustomCommands->SetDisplayWindow(
   146         iVideoPlayControllerCustomCommands->SetDisplayWindow(
   147             drawRect , areaRect);
   147             drawRect , areaRect);
   148 
   148 
   149         LOG( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: Update region (areaRect)");
   149         LOG(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: Update region (areaRect)");
   150         RRegion region(areaRect);
   150         RRegion region(areaRect);
   151         iVideoPlayControllerCustomCommands->UpdateDisplayRegion(region);
   151         iVideoPlayControllerCustomCommands->UpdateDisplayRegion(region);
   152         region.Close();
   152         region.Close();
   153 
   153 
   154         LOG( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: Resume DSA");
   154         LOG(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: Resume DSA");
   155         iVideoPlayControllerCustomCommands->DirectScreenAccessEvent(EResumeDSA);
   155         iVideoPlayControllerCustomCommands->DirectScreenAccessEvent(EResumeDSA);
   156     }
   156     }
   157     LOG( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: -");
   157     LOG(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetDrawRect: -");
   158 }
   158 }
   159 
   159 
   160 const TRect& CMMADSAWindow::DrawRect()
   160 const TRect& CMMADSAWindow::DrawRect()
   161 {
   161 {
   162     return iDrawRect;
   162     return iDrawRect;
   194     }
   194     }
   195 }
   195 }
   196 
   196 
   197 TBool CMMADSAWindow::IsVisible() const
   197 TBool CMMADSAWindow::IsVisible() const
   198 {
   198 {
   199     LOG1( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::IsVisible %d ", iVisible);
   199     LOG1(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::IsVisible %d ", iVisible);
   200     return iVisible;
   200     return iVisible;
   201 }
   201 }
   202 
   202 
   203 void CMMADSAWindow::SetVisible(TBool aVisible, TBool aUseEventServer)
   203 void CMMADSAWindow::SetVisible(TBool aVisible, TBool aUseEventServer)
   204 {
   204 {
   205     LOG2( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetVisible avisible=%d useES=%d +", aVisible, aUseEventServer);
   205     LOG2(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetVisible avisible=%d useES=%d +", aVisible, aUseEventServer);
   206     // Event server may not be used if we already in mma event server thread
   206     // Event server may not be used if we already in mma event server thread
   207     if (aUseEventServer)
   207     if (aUseEventServer)
   208     {
   208     {
   209         // MMA player may be deleted after ExecuteV and before the static method
   209         // MMA player may be deleted after ExecuteV and before the static method
   210         // is called so Event source is used to check if a cleanup has
   210         // is called so Event source is used to check if a cleanup has
   217     }
   217     }
   218     else
   218     else
   219     {
   219     {
   220         SetWindowVisible(this, aVisible, iEventSource, iPlayer);
   220         SetWindowVisible(this, aVisible, iEventSource, iPlayer);
   221     }
   221     }
   222     LOG1( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetVisible %d -", aVisible);
   222     LOG1(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetVisible %d -", aVisible);
   223 }
   223 }
   224 
   224 
   225 void CMMADSAWindow::SetWindowVisible(
   225 void CMMADSAWindow::SetWindowVisible(
   226     CMMADSAWindow* aWindow,
   226     CMMADSAWindow* aWindow,
   227     TBool aVisible,
   227     TBool aVisible,
   228     MMAFunctionServer* aEventSource,
   228     MMAFunctionServer* aEventSource,
   229     CMMAPlayer* aPlayer)
   229     CMMAPlayer* aPlayer)
   230 {
   230 {
   231     LOG1( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible aVisible %d", aVisible);
   231     LOG1(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible aVisible %d", aVisible);
   232     RPointerArray< CMMAPlayer > players = aEventSource->Players();
   232     RPointerArray< CMMAPlayer > players = aEventSource->Players();
   233     // Invoke SetDrawRect only if the player has not been cleaned
   233     // Invoke SetDrawRect only if the player has not been cleaned
   234     if (players.Find(aPlayer) != KErrNotFound)
   234     if (players.Find(aPlayer) != KErrNotFound)
   235     {
   235     {
   236         LOG( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible : Player found");
   236         LOG(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible : Player found");
   237         if (aVisible != aWindow->iVisible)
   237         if (aVisible != aWindow->iVisible)
   238         {
   238         {
   239             LOG( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible: Changed visibility");
   239             LOG(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible: Changed visibility");
   240             aWindow->iVisible = aVisible;
   240             aWindow->iVisible = aVisible;
   241         }
   241         }
   242         if (aVisible)
   242         if (aVisible)
   243         {
   243         {
   244             LOG( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible: aVisible = 1");
   244             LOG(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible: aVisible = 1");
   245             const TRect drawRect = aWindow->DrawRect();
   245             const TRect drawRect = aWindow->DrawRect();
   246 
   246 
   247             aWindow->SetDrawRect(drawRect);
   247             aWindow->SetDrawRect(drawRect);
   248         }
   248         }
   249         else
   249         else
   250         {
   250         {
   251             LOG( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible: aVisible = 0");
   251             LOG(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible: aVisible = 0");
   252             TRect emptyRect(0, 0, 0, 0);
   252             TRect emptyRect(0, 0, 0, 0);
   253 
   253 
   254             RRegion region(emptyRect);
   254             RRegion region(emptyRect);
   255             aWindow->iVideoPlayControllerCustomCommands->UpdateDisplayRegion(region);
   255             aWindow->iVideoPlayControllerCustomCommands->UpdateDisplayRegion(region);
   256             region.Close();
   256             region.Close();
   257             LOG( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible: Abort DSA");
   257             LOG(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowVisible: Abort DSA");
   258 
   258 
   259             aWindow->iVideoPlayControllerCustomCommands->
   259             aWindow->iVideoPlayControllerCustomCommands->
   260             DirectScreenAccessEvent(EAbortDSA);
   260             DirectScreenAccessEvent(EAbortDSA);
   261         }
   261         }
   262 
   262 
   263     }
   263     }
   264 }
   264 }
   265 
   265 
   266 void CMMADSAWindow::SetWindowRect(const TRect& aRect,MMMADisplay::TThreadType /*aThreadType*/)
   266 void CMMADSAWindow::SetWindowRect(const TRect& aRect,MMMADisplay::TThreadType /*aThreadType*/)
   267 {
   267 {
   268     LOG2( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowRect aRect TL %d %d",
   268     LOG2(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowRect aRect TL %d %d",
   269                aRect.iTl.iX, aRect.iTl.iY);
   269          aRect.iTl.iX, aRect.iTl.iY);
   270     LOG2( EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowRect aRect BR %d %d",
   270     LOG2(EJavaMMAPI, EInfo, "MID::CMMADSAWindow::SetWindowRect aRect BR %d %d",
   271                aRect.iBr.iX, aRect.iBr.iY);
   271          aRect.iBr.iX, aRect.iBr.iY);
   272 
   272 
   273     iClientRect = aRect;
   273     iClientRect = aRect;
   274 }
   274 }
   275 
   275 
   276 const TRect& CMMADSAWindow::WindowRect()
   276 const TRect& CMMADSAWindow::WindowRect()