@ -13,6 +13,9 @@ public class FillerPresetEditViewModel
@@ -13,6 +13,9 @@ public class FillerPresetEditViewModel
private CollectionType _ collectionType ;
private int? _ count ;
private TimeSpan ? _d uration ;
private int _d urationHours ;
private int _d urationMinutes ;
private int _d urationSeconds ;
private FillerKind _f illerKind ;
private FillerMode _f illerMode ;
private int? _ padToNearestMinute ;
@ -52,7 +55,44 @@ public class FillerPresetEditViewModel
@@ -52,7 +55,44 @@ public class FillerPresetEditViewModel
public TimeSpan ? Duration
{
get = > FillerMode = = FillerMode . Duration ? _d uration : null ;
set = > _d uration = value ;
set
{
_d uration = value ;
CheckDuration ( ) ;
}
}
public int DurationHours
{
get = > _d urationHours ;
set
{
_d uration = TimeSpan . FromHours ( value ) + TimeSpan . FromMinutes ( _d uration ? . Minutes ? ? 0 ) +
TimeSpan . FromSeconds ( _d uration ? . Seconds ? ? 0 ) ;
CheckDuration ( ) ;
}
}
public int DurationMinutes
{
get = > _d urationMinutes ;
set
{
_d uration = TimeSpan . FromHours ( _d uration ? . Hours ? ? 0 ) + TimeSpan . FromMinutes ( value ) +
TimeSpan . FromSeconds ( _d uration ? . Seconds ? ? 0 ) ;
CheckDuration ( ) ;
}
}
public int DurationSeconds
{
get = > _d urationSeconds ;
set
{
_d uration = TimeSpan . FromHours ( _d uration ? . Hours ? ? 0 ) + TimeSpan . FromMinutes ( _d uration ? . Minutes ? ? 0 ) +
TimeSpan . FromSeconds ( value ) ;
CheckDuration ( ) ;
}
}
public int? Count
@ -106,7 +146,7 @@ public class FillerPresetEditViewModel
@@ -106,7 +146,7 @@ public class FillerPresetEditViewModel
Name ,
FillerKind ,
FillerMode ,
Duration . Map ( FixDuration ) ,
Duration ,
Count ,
PadToNearestMinute ,
AllowWatermarks ,
@ -124,7 +164,7 @@ public class FillerPresetEditViewModel
@@ -124,7 +164,7 @@ public class FillerPresetEditViewModel
Name ,
FillerKind ,
FillerMode ,
Duration . Map ( FixDuration ) ,
Duration ,
Count ,
PadToNearestMinute ,
AllowWatermarks ,
@ -137,6 +177,32 @@ public class FillerPresetEditViewModel
@@ -137,6 +177,32 @@ public class FillerPresetEditViewModel
Expression ,
UseChaptersAsMediaItems ) ;
private static TimeSpan FixDuration ( TimeSpan duration ) = >
duration > TimeSpan . FromDays ( 1 ) ? duration . Subtract ( TimeSpan . FromDays ( 1 ) ) : duration ;
private void CheckDuration ( )
{
if ( _f illerMode is FillerMode . Duration )
{
_d uration ? ? = TimeSpan . Zero ;
if ( _d uration > TimeSpan . FromHours ( 2 4 ) )
{
_d uration = TimeSpan . FromHours ( 2 4 ) ;
}
if ( _d uration < TimeSpan . FromSeconds ( 1 ) )
{
_d uration = TimeSpan . FromSeconds ( 1 ) ;
}
_d urationHours = ( int ) _d uration . Value . TotalHours ;
_d urationMinutes = _d uration . Value . Minutes ;
_d urationSeconds = _d uration . Value . Seconds ;
}
else
{
_d uration = null ;
_d urationHours = 0 ;
_d urationMinutes = 0 ;
_d urationSeconds = 0 ;
}
}
}