Index: libs/libmythtv/NuppelVideoPlayer.h
===================================================================
--- libs/libmythtv/NuppelVideoPlayer.h	(revision 8915)
+++ libs/libmythtv/NuppelVideoPlayer.h	(working copy)
@@ -84,7 +84,6 @@
     void SetFileName(QString lfilename)       { filename = lfilename; }
     void SetExactSeeks(bool exact)            { exactseeks = exact; }
     void SetAutoCommercialSkip(int autoskip);
-    void SetCommercialSkipMethod(int m)       { commercialskipmethod = m; }
     void SetCommBreakMap(QMap<long long, int> &newMap);
     void SetRingBuffer(RingBuffer *rbuf)      { ringBuffer = rbuf; }
     void SetLiveTVChain(LiveTVChain *tvchain) { livetvchain = tvchain; }
@@ -525,7 +524,6 @@
     QMutex     commBreakMapLock;
     int        skipcommercials;
     int        autocommercialskip;
-    int        commercialskipmethod;
     int        commrewindamount;
     int        commnotifyamount;
     int        lastCommSkipDirection;
Index: libs/libmythtv/NuppelVideoPlayer.cpp
===================================================================
--- libs/libmythtv/NuppelVideoPlayer.cpp	(revision 8915)
+++ libs/libmythtv/NuppelVideoPlayer.cpp	(working copy)
@@ -138,7 +138,7 @@
       videoFilters(NULL),           FiltMan(new FilterManager()),
       // Commercial filtering
       skipcommercials(0),           autocommercialskip(0),
-      commercialskipmethod(0),      commrewindamount(0),
+      commrewindamount(0),
       commnotifyamount(0),          lastCommSkipDirection(0),
       lastCommSkipTime(0/*1970*/),  lastCommSkipStart(0),
       lastSkipTime(0 /*1970*/),
Index: libs/libmythtv/tv_play.cpp
===================================================================
--- libs/libmythtv/tv_play.cpp	(revision 8915)
+++ libs/libmythtv/tv_play.cpp	(working copy)
@@ -134,11 +134,14 @@
     REG_KEY("TV Playback", "SPEEDDEC", "Decrease the playback speed", "J");
     REG_KEY("TV Playback", "ADJUSTSTRETCH", "Turn on time stretch control", "A");
     REG_KEY("TV Playback", "TOGGLESTRETCH", "Toggle time stretch speed", "");
+    REG_KEY("TV Playback", "TOGGLEAUDIOSYNC",
+            "Turn on audio sync adjustment controls", "Y");
     REG_KEY("TV Playback", "TOGGLEPICCONTROLS", "Turn on the playback picture "
             "adjustment controls", "F");
     REG_KEY("TV Playback", "TOGGLERECCONTROLS", "Turn on the recording picture "
             "adjustment controls", "G");
     REG_KEY("TV Playback", "TOGGLEEDIT", "Start Edit Mode", "E");
+    REG_KEY("TV Playback", "CYCLECOMMSKIPMODE", "Cycle Commercial Skip mode", "R");
     REG_KEY("TV Playback", "GUIDE", "Show the Program Guide", "S");
     REG_KEY("TV Playback", "TOGGLESLEEP", "Toggle the Sleep Timer", "F8");
     REG_KEY("TV Playback", "PLAY", "Play", "Ctrl+P");
@@ -203,7 +206,7 @@
       jumptime(0), usePicControls(false), smartChannelChange(false),
       MuteIndividualChannels(false), arrowAccel(false),
       osd_general_timeout(2), osd_prog_info_timeout(3),
-      autoCommercialSkip(false), tryUnflaggedSkip(false),
+      autoCommercialSkip(CommSkipOff), tryUnflaggedSkip(false),
       smartForward(false), stickykeys(0),
       ff_rew_repos(1.0f), ff_rew_reverse(false),
       vbimode(VBIMode::None),
@@ -319,7 +322,7 @@
     persistentbrowsemode = gContext->GetNumSetting("PersistentBrowseMode", 0);
     osd_general_timeout  = gContext->GetNumSetting("OSDGeneralTimeout", 2);
     osd_prog_info_timeout= gContext->GetNumSetting("OSDProgramInfoTimeout", 3);
-    autoCommercialSkip   = gContext->GetNumSetting("AutoCommercialSkip", 0);
+    autoCommercialSkip   = (enum commSkipMode)gContext->GetNumSetting("AutoCommercialSkip", CommSkipOff);
     tryUnflaggedSkip     = gContext->GetNumSetting("TryUnflaggedSkip", 0);
     smartForward         = gContext->GetNumSetting("SmartForward", 0);
     stickykeys           = gContext->GetNumSetting("StickyKeys");
@@ -2130,6 +2133,9 @@
             }
             ChangeTimeStretch(0, false);
         }
+        else if (action == "CYCLECOMMSKIPMODE") {
+            SetAutoCommercialSkip((enum commSkipMode)((autoCommercialSkip + 1) % CommSkipModes));
+        }
         else if (action == "TOGGLEAUDIOSYNC")
             ChangeAudioSync(0);   // just display
         else if (action == "TOGGLEPICCONTROLS")
@@ -5482,7 +5488,7 @@
         else if (action == "TOGGLEAUTOEXPIRE")
             ToggleAutoExpire();
         else if (action.left(14) == "TOGGLECOMMSKIP")
-            SetAutoCommercialSkip(action.right(1).toInt());
+            SetAutoCommercialSkip((enum commSkipMode)(action.right(1).toInt()));
         else if (action == "QUEUETRANSCODE")
             DoQueueTranscode();
         else if (action == "JUMPPREV")
@@ -5861,20 +5867,20 @@
     }
 }
 
-void TV::SetAutoCommercialSkip(int skipMode)
+void TV::SetAutoCommercialSkip(enum commSkipMode skipMode)
 {
     QString desc = "";
 
     autoCommercialSkip = skipMode;
 
-    if (autoCommercialSkip == 0)
+    if (autoCommercialSkip == CommSkipOff)
         desc = tr("Auto-Skip OFF");
-    else if (autoCommercialSkip == 1)
+    else if (autoCommercialSkip == CommSkipOn)
         desc = tr("Auto-Skip ON");
-    else if (autoCommercialSkip == 2)
+    else if (autoCommercialSkip == CommSkipNotify)
         desc = tr("Auto-Skip Notify");
 
-    nvp->SetAutoCommercialSkip(autoCommercialSkip);
+    nvp->SetAutoCommercialSkip((int)autoCommercialSkip);
 
     if (GetOSD() && activenvp == nvp && desc != "" )
     {
Index: libs/libmythtv/tv_play.h
===================================================================
--- libs/libmythtv/tv_play.h	(revision 8915)
+++ libs/libmythtv/tv_play.h	(working copy)
@@ -262,7 +262,13 @@
 
     void DoQueueTranscode(void);  
 
-    void SetAutoCommercialSkip(int skipMode = 0);
+    enum commSkipMode {
+        CommSkipOff = 0,
+        CommSkipOn = 1,
+        CommSkipNotify = 2,
+        CommSkipModes = 3,      /* placeholder */
+    };
+    void SetAutoCommercialSkip(enum commSkipMode skipMode = CommSkipOff);
     void SetManualZoom(bool zoomON = false);
  
     bool ClearOSD(void);
@@ -338,7 +344,7 @@
     int     osd_general_timeout;
     int     osd_prog_info_timeout;
 
-    int     autoCommercialSkip;
+    enum commSkipMode autoCommercialSkip;
     bool    tryUnflaggedSkip;
 
     bool    smartForward;
