Ok after trying a few times i have worked out how to implement a pvr timeshift progress control.
the first progress bar is Player.Progress that acts as the cache of what has been recorded and how far you can seek up to.
<control type="progress">
<animation effect="fade" end="0" time="200">WindowClose</animation>
<left>200</left>
<top>80</top>
<width>1520</width>
<height>26</height>
<info>Player.Progress</info>
<midtexture colordiffuse="button_focus" border="13">progress/cache.png</midtexture>
</control>
now this progress control needs to be on top like Player.Progress usally is. This progress control shows what you have watched so far
<control type="progress">
<animation effect="fade" end="0" time="200">WindowClose</animation>
<left>200</left>
<top>80</top>
<width>1520</width>
<height>26</height>
<info>Pvr.Progress</info>
<texturebg colordiffuse="black" border="13">progress/blank.png</texturebg>
</control>
now for a slider this was a bit harder to work out because if you have the action as seek and info as Pvr.Progress then the slider will just keep up with Player.Progress even though the info is meant to be Pvr.Progress. so the first slider just have info Pvr.Progress and no action
<control type="slider">
<left>196</left>
<top>78</top>
<width>1520</width>
<height>32</height>
<onup>8010</onup>
<ondown>650</ondown>
<texturesliderbar border="3" colordiffuse="00FFFFFF">progress/texturebg_border_white.png</texturesliderbar>
<textureslidernib>progress/nub.png</textureslidernib>
<textureslidernibfocus colordiffuse="button_focus">progress/nub.png</textureslidernibfocus>
<info>Pvr.Progress</info>
</control>
this next slider is a slider to move the seek but so action as seek and now make the textures invisible by giving it a colordiffuse of 00FFFFFF so you can’t see it but move it.
<control type="slider">
<left>196</left>
<top>78</top>
<width>1520</width>
<height>32</height>
<onup>8010</onup>
<ondown>650</ondown>
<texturesliderbar border="3" colordiffuse="00FFFFFF">progress/texturebg_border_white.png</texturesliderbar>
<textureslidernib colordiffuse="00FFFFFF">progress/nub.png</textureslidernib>
<textureslidernibfocus colordiffuse="00FFFFFF">progress/nub.png</textureslidernibfocus>
<info>Pvr.Progress</info>
<action>seek</action>
</control>
now Pvr.TimeShiftProgress seems to be weird, as a progress control when you are watching live tv the progress control stay full but if you pause it goes down. i would of thought it acted more like Pvr.Progress and Pvr.Progress to be like Player.Progress.
now for the labels
Pvr.TimeShiftStart give you the time when you started watching TV eg. 8:30pm
<label>$INFO[Pvr.TimeShiftStart]</label>
Pvr.TimeShiftEnd gives you time that has been Timeshifted so far so eg if you paused it from 8:30pm and now is 9:00pm this will return 9:00pm
<label>$INFO[Pvr.TimeShiftEnd]</label>
Pvr.TimeShiftCur is how far you are into watching. so say you have watched 5min into it then it will return 8:35pm
<label>$INFO[Pvr.TimeShiftCur]</label>
now the next 2 lables are mins
<label>$INFO[Pvr.Time]</label>
seems to be the same as Player.Time
and this seems to be the same as Player.Duration
<label>$INFO[Pvr.Duration]</label>
now i tested this with wmc addon
so if you would like to add it to your skin you really just need to have Pvr.Progress where Player.Progress is normally and have Player.Progress where Player.Cache is normally.
hope this makes sense and helps others out as i know other people have tried and removed it from there skin.
will when i can, try and update estuary skin to have this feature but not all pvr addon have the timeshift infomation. would be great if the devs could help to have all pvr addons with this feature