public void UpdateSize()
{
if (videoMode == VideoMode.TV)
{
Trace.WriteLineIf(MainForm.trace.TraceInfo, "VideoForm_Resize(...)");
if (Controls.Count > 0 && Controls[0] is VideoControl)
{
VideoControl videoControl = Controls[0] as VideoControl;
if (videoControl.CurrentGraphBuilder != null)
{
Size targetSize = videoControl.CurrentGraphBuilder.CurrentVideoTargetRectangle.Size;
double ratioClient = (double)ClientSize.Height / (double)ClientSize.Width;
double ratioTarget = (double)targetSize.Height / (double)targetSize.Width;
Trace.WriteLineIf(MainForm.trace.TraceVerbose, string.Format(("\tClientSize {0}, TargetSize {1}"), ClientSize, targetSize));
Trace.WriteLineIf(MainForm.trace.TraceVerbose, string.Format(("\tratioClient {0}, ratioTarget {1}"), ratioClient, ratioTarget));
if (ratioClient != ratioTarget)
{
Trace.WriteLineIf(MainForm.trace.TraceVerbose, "\tratioClient != ratioTarget");
//Size newClientSize = ClientSize;
if (ratioClient > ratioTarget)
Height += (int)((double)ClientSize.Width * ratioTarget) - ClientSize.Height;
//newClientSize.Height = (int)((double)newClientSize.Width * ratioTarget);
else
Width += (int)((double)ClientSize.Height / ratioTarget) - ClientSize.Width;
//newClientSize.Width = (int)((double)newClientSize.Height / ratioTarget);
//if (ClientSize.Width < targetSize.Width)
// newClientSize.Width = (int)((double)newClientSize.Height / ratioTarget);
//else
// newClientSize.Height = (int)((double)newClientSize.Width * ratioTarget);
//ClientSize = newClientSize;
videoControl.Invalidate();
}
}
}
}
}