From a6e892f206a46c3ccfa07ba255284f9f272d1da4 Mon Sep 17 00:00:00 2001
From: Richard <peper03@yahoo.com>
Date: Sat, 17 Nov 2012 14:38:36 +0100
Subject: [PATCH] Changed DVD angle handling to be 1-based throughout (as they
 are on DVDs). This also affects the SWITCHTOANGLE action
 via the Services API.

---
 mythtv/libs/libmythtv/Bluray/mythbdplayer.cpp |    4 ++--
 mythtv/libs/libmythtv/DVD/mythdvdplayer.cpp   |    8 ++++----
 mythtv/libs/libmythtv/tv_play.cpp             |    2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/mythtv/libs/libmythtv/Bluray/mythbdplayer.cpp b/mythtv/libs/libmythtv/Bluray/mythbdplayer.cpp
index a86faeb..f8c9c25 100644
--- a/mythtv/libs/libmythtv/Bluray/mythbdplayer.cpp
+++ b/mythtv/libs/libmythtv/Bluray/mythbdplayer.cpp
@@ -239,9 +239,9 @@ QString MythBDPlayer::GetTitleName(int title) const
 
 QString MythBDPlayer::GetAngleName(int angle) const
 {
-    if (angle >= 0 && angle < GetNumAngles())
+    if (angle >= 1 && angle <= GetNumAngles())
     {
-        QString name = QObject::tr("Angle %1").arg(angle+1);
+        QString name = QObject::tr("Angle %1").arg(angle);
         return name;
     }
     return QString();
diff --git a/mythtv/libs/libmythtv/DVD/mythdvdplayer.cpp b/mythtv/libs/libmythtv/DVD/mythdvdplayer.cpp
index 0230428..1c4fa45 100644
--- a/mythtv/libs/libmythtv/DVD/mythdvdplayer.cpp
+++ b/mythtv/libs/libmythtv/DVD/mythdvdplayer.cpp
@@ -628,9 +628,9 @@ int MythDVDPlayer::GetCurrentAngle(void) const
 
 QString MythDVDPlayer::GetAngleName(int angle) const
 {
-    if (angle >= 0 && angle < GetNumAngles())
+    if (angle >= 1 && angle <= GetNumAngles())
     {
-        QString name = QObject::tr("Angle %1").arg(angle+1);
+        QString name = QObject::tr("Angle %1").arg(angle);
         return name;
     }
     return QString();
@@ -642,8 +642,8 @@ bool MythDVDPlayer::SwitchAngle(int angle)
     if (!total || angle == GetCurrentAngle())
         return false;
 
-    if (angle >= (int)total)
-        angle = 0;
+    if (angle < 1 || angle > (int)total)
+        angle = 1;
 
     return player_ctx->buffer->DVD()->SwitchAngle(angle);
 }
diff --git a/mythtv/libs/libmythtv/tv_play.cpp b/mythtv/libs/libmythtv/tv_play.cpp
index 26220bd..7fa0cc8 100644
--- a/mythtv/libs/libmythtv/tv_play.cpp
+++ b/mythtv/libs/libmythtv/tv_play.cpp
@@ -11431,7 +11431,7 @@ void TV::FillOSDMenuNavigate(const PlayerContext *ctx, OSD *osd,
         currenttext = tr("Angle");
         int current_angle = GetCurrentAngle(ctx);
 
-        for (int i = 0; i < num_angles; i++)
+        for (int i = 1; i <= num_angles; i++)
         {
             QString angleIdx = QString("%1").arg(i, 3, 10, QChar(48));
             QString desc = GetAngleName(ctx, i);
-- 
1.7.9.5

