Ticket #571: osd-jumplength.patch
File osd-jumplength.patch, 4.5 KB (added by , 18 years ago) |
---|
-
libs/libmythtv/tv_play.cpp
187 187 exitPlayer(false), paused(false), errored(false), 188 188 stretchAdjustment(false), 189 189 audiosyncAdjustment(false), audiosyncBaseline(LONG_LONG_MIN), 190 skipAdjustment(kSkipNone), skipNumeric(false), 190 191 editmode(false), zoomMode(false), sigMonMode(false), 191 192 update_osd_pos(false), endOfRecording(false), requestDelete(false), 192 193 doSmartForward(false), … … 1857 1858 } 1858 1859 } 1859 1860 1861 if (skipAdjustment != kSkipNone) 1862 { 1863 for (unsigned int i = 0; i < actions.size(); i++) 1864 { 1865 action = actions[i]; 1866 handled = true; 1867 1868 if (action == "LEFT") 1869 ChangeSkip(-1); 1870 else if (action == "RIGHT") 1871 ChangeSkip(1); 1872 else if (action == "UP") 1873 ChangeSkip(-10); 1874 else if (action == "DOWN") 1875 ChangeSkip(10); 1876 else if (action == "0" || action == "1" || action == "2" || 1877 action == "3" || action == "4" || action == "5" || 1878 action == "6" || action == "7" || action == "8" || 1879 action == "9") 1880 ChangeSkip(1000000 + action.toInt()); 1881 else 1882 handled = false; 1883 } 1884 } 1885 1860 1886 #if DEBUG_ACTIONS 1861 1887 for (uint i = 0; i < actions.size(); ++i) 1862 1888 VERBOSE(VB_IMPORTANT, LOC + QString("handled(%1) actions[%2](%3)") … … 4040 4066 } 4041 4067 } 4042 4068 4069 void TV::ChangeSkip(int dir, bool allowEdit) 4070 { 4071 int *val; 4072 int newval; 4073 QString desc; 4074 4075 switch (skipAdjustment) 4076 { 4077 case kSkipNone: 4078 return; 4079 case kSkipForward: 4080 val = &fftime; 4081 desc = tr("Skip Ahead"); 4082 break; 4083 case kSkipReverse: 4084 val = &rewtime; 4085 desc = tr("Skip Back"); 4086 break; 4087 case kSkipJump: 4088 val = &jumptime; 4089 desc = tr("Jump"); 4090 break; 4091 default: 4092 return; 4093 } 4094 4095 newval = *val; 4096 4097 if (dir > 1000000) 4098 { 4099 if (!skipNumeric) newval = 0; 4100 else newval *= 10; 4101 skipNumeric = true; 4102 newval += (dir - 1000000); 4103 } 4104 else 4105 { 4106 skipNumeric = false; 4107 newval += dir; 4108 } 4109 4110 if (newval < 0) newval = 0; 4111 4112 *val = newval; 4113 4114 if (GetOSD() && !browsemode) 4115 { 4116 QString text; 4117 int dispval = newval; 4118 4119 if (skipAdjustment == kSkipForward || skipAdjustment == kSkipReverse) 4120 { 4121 dispval *= 10; 4122 text = QString(" %1 s").arg(newval); 4123 } 4124 else 4125 { 4126 dispval *= 100; 4127 text = QString(" %1 m").arg(newval); 4128 } 4129 4130 GetOSD()->StartPause(dispval, false, desc, desc + text, 10, 4131 kOSDFunctionalType_SkipAdjust); 4132 update_osd_pos = false; 4133 } 4134 4135 if (!allowEdit) skipAdjustment = kSkipNone; 4136 } 4137 4043 4138 void TV::ToggleMute(void) 4044 4139 { 4045 4140 kMuteState mute_status; … … 4527 4622 case kOSDFunctionalType_AudioSyncAdjust: 4528 4623 audiosyncAdjustment = false; 4529 4624 break; 4625 case kOSDFunctionalType_SkipAdjust: 4626 skipAdjustment = kSkipNone; 4627 break; 4530 4628 case kOSDFunctionalType_Default: 4531 4629 break; 4532 4630 } … … 4727 4825 ToggleLetterbox(action.right(1).toInt()); 4728 4826 hidetree = false; 4729 4827 } 4828 else if (action == "EDITFFTIME") 4829 { 4830 skipAdjustment = kSkipForward; 4831 ChangeSkip(0); 4832 } 4833 else if (action == "EDITREWTIME") 4834 { 4835 skipAdjustment = kSkipReverse; 4836 ChangeSkip(0); 4837 } 4838 else if (action == "EDITJUMPTIME") 4839 { 4840 skipAdjustment = kSkipJump; 4841 ChangeSkip(0); 4842 } 4730 4843 else if (action == "NEXTAUDIO") 4731 4844 ChangeAudioTrack(1); 4732 4845 else if (action == "PREVAUDIO") … … 4933 5046 } 4934 5047 } 4935 5048 5049 item = new OSDGenericTree(treeMenu, tr("Change Skip Lengths")); 5050 subitem = new OSDGenericTree(item, tr("Change Skip Ahead"), "EDITFFTIME"); 5051 subitem = new OSDGenericTree(item, tr("Change Skip Back"), "EDITREWTIME"); 5052 subitem = new OSDGenericTree(item, tr("Change Jump"), "EDITJUMPTIME"); 5053 4936 5054 int letterbox = nvp->GetLetterbox(); 4937 5055 item = new OSDGenericTree(treeMenu, tr("Change Aspect Ratio")); 4938 5056 subitem = new OSDGenericTree(item, tr("4:3"), "TOGGLEASPECT" +