Move easy filters so Machine can use them

This commit is contained in:
Matt Nadareski
2020-09-08 12:54:41 -07:00
parent d8835920a7
commit 7f6507cffb
37 changed files with 233 additions and 289 deletions

View File

@@ -190,11 +190,11 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on default // Filter on default
if (!PassBoolFilter(filter.DatItem_Default, Default)) if (!filter.PassBoolFilter(filter.DatItem_Default, Default))
return false; return false;
// Filter on individual conditions // Filter on individual conditions

View File

@@ -104,7 +104,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on mask // Filter on mask
if (!PassStringFilter(filter.DatItem_Analog_Mask, Mask)) if (!filter.PassStringFilter(filter.DatItem_Analog_Mask, Mask))
return false; return false;
return true; return true;

View File

@@ -143,7 +143,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
return true; return true;

View File

@@ -170,15 +170,15 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on description // Filter on description
if (!PassStringFilter(filter.DatItem_Description, Description)) if (!filter.PassStringFilter(filter.DatItem_Description, Description))
return false; return false;
// Filter on default // Filter on default
if (!PassBoolFilter(filter.DatItem_Default, Default)) if (!filter.PassBoolFilter(filter.DatItem_Default, Default))
return false; return false;
return true; return true;

View File

@@ -188,11 +188,11 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// DatItem_Tag // DatItem_Tag
if (!PassStringFilter(filter.DatItem_Tag, Tag)) if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
return false; return false;
// DatItem_ChipType // DatItem_ChipType
@@ -202,7 +202,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// DatItem_Clock // DatItem_Clock
if (!PassLongFilter(filter.DatItem_Clock, Clock)) if (!filter.PassLongFilter(filter.DatItem_Clock, Clock))
return false; return false;
return true; return true;

View File

@@ -186,11 +186,11 @@ namespace SabreTools.Library.DatItems
if (sub) if (sub)
{ {
// Filter on tag // Filter on tag
if (!PassStringFilter(filter.DatItem_Condition_Tag, Tag)) if (!filter.PassStringFilter(filter.DatItem_Condition_Tag, Tag))
return false; return false;
// Filter on mask // Filter on mask
if (!PassStringFilter(filter.DatItem_Condition_Mask, Mask)) if (!filter.PassStringFilter(filter.DatItem_Condition_Mask, Mask))
return false; return false;
// Filter on relation // Filter on relation
@@ -200,17 +200,17 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on value // Filter on value
if (!PassStringFilter(filter.DatItem_Condition_Value, Value)) if (!filter.PassStringFilter(filter.DatItem_Condition_Value, Value))
return false; return false;
} }
else else
{ {
// Filter on tag // Filter on tag
if (!PassStringFilter(filter.DatItem_Tag, Tag)) if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
return false; return false;
// Filter on mask // Filter on mask
if (!PassStringFilter(filter.DatItem_Mask, Mask)) if (!filter.PassStringFilter(filter.DatItem_Mask, Mask))
return false; return false;
// Filter on relation // Filter on relation
@@ -220,7 +220,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on value // Filter on value
if (!PassStringFilter(filter.DatItem_Value, Value)) if (!filter.PassStringFilter(filter.DatItem_Value, Value))
return false; return false;
} }

View File

@@ -255,15 +255,15 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on tag // Filter on tag
if (!PassStringFilter(filter.DatItem_Tag, Tag)) if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
return false; return false;
// Filter on mask // Filter on mask
if (!PassStringFilter(filter.DatItem_Mask, Mask)) if (!filter.PassStringFilter(filter.DatItem_Mask, Mask))
return false; return false;
// Filter on individual conditions // Filter on individual conditions

View File

@@ -273,47 +273,47 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on player // Filter on player
if (!PassLongFilter(filter.DatItem_Control_Player, Player)) if (!filter.PassLongFilter(filter.DatItem_Control_Player, Player))
return false; return false;
// Filter on buttons // Filter on buttons
if (!PassLongFilter(filter.DatItem_Control_Buttons, Buttons)) if (!filter.PassLongFilter(filter.DatItem_Control_Buttons, Buttons))
return false; return false;
// Filter on reqbuttons // Filter on reqbuttons
if (!PassLongFilter(filter.DatItem_Control_ReqButtons, RequiredButtons)) if (!filter.PassLongFilter(filter.DatItem_Control_ReqButtons, RequiredButtons))
return false; return false;
// Filter on minimum // Filter on minimum
if (!PassLongFilter(filter.DatItem_Control_Minimum, Minimum)) if (!filter.PassLongFilter(filter.DatItem_Control_Minimum, Minimum))
return false; return false;
// Filter on maximum // Filter on maximum
if (!PassLongFilter(filter.DatItem_Control_Maximum, Maximum)) if (!filter.PassLongFilter(filter.DatItem_Control_Maximum, Maximum))
return false; return false;
// Filter on sensitivity // Filter on sensitivity
if (!PassLongFilter(filter.DatItem_Control_Sensitivity, Sensitivity)) if (!filter.PassLongFilter(filter.DatItem_Control_Sensitivity, Sensitivity))
return false; return false;
// Filter on keydelta // Filter on keydelta
if (!PassLongFilter(filter.DatItem_Control_KeyDelta, KeyDelta)) if (!filter.PassLongFilter(filter.DatItem_Control_KeyDelta, KeyDelta))
return false; return false;
// Filter on reverse // Filter on reverse
if (!PassBoolFilter(filter.DatItem_Control_Reverse, Reverse)) if (!filter.PassBoolFilter(filter.DatItem_Control_Reverse, Reverse))
return false; return false;
// Filter on ways // Filter on ways
if (!PassStringFilter(filter.DatItem_Control_Ways, Ways)) if (!filter.PassStringFilter(filter.DatItem_Control_Ways, Ways))
return false; return false;
// Filter on ways2 // Filter on ways2
if (!PassStringFilter(filter.DatItem_Control_Ways2, Ways2)) if (!filter.PassStringFilter(filter.DatItem_Control_Ways2, Ways2))
return false; return false;
// Filter on ways3 // Filter on ways3
if (!PassStringFilter(filter.DatItem_Control_Ways3, Ways3)) if (!filter.PassStringFilter(filter.DatItem_Control_Ways3, Ways3))
return false; return false;
return true; return true;

View File

@@ -729,73 +729,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item type // Filter on item type
if (!PassStringFilter(filter.DatItem_Type, ItemType.ToString())) if (!filter.PassStringFilter(filter.DatItem_Type, ItemType.ToString()))
return false;
return true;
}
/// <summary>
/// Determines if a value passes a bool? filter
/// </summary>
/// <param name="filterItem">Filter item to check</param>
/// <param name="value">Value to check</param>
/// <returns>True if the value passes, false otherwise</returns>
protected bool PassBoolFilter(FilterItem<bool?> filterItem, bool? value)
{
if (filterItem.MatchesNeutral(null, value) == false)
return false;
return true;
}
/// <summary>
/// Determines if a value passes a double? filter
/// </summary>
/// <param name="filterItem">Filter item to check</param>
/// <param name="value">Value to check</param>
/// <returns>True if the value passes, false otherwise</returns>
protected bool PassDoubleFilter(FilterItem<double?> filterItem, double? value)
{
if (filterItem.MatchesNeutral(null, value) == false)
return false;
else if (filterItem.MatchesPositive(null, value) == false)
return false;
else if (filterItem.MatchesNegative(null, value) == false)
return false;
return true;
}
/// <summary>
/// Determines if a value passes a long? filter
/// </summary>
/// <param name="filterItem">Filter item to check</param>
/// <param name="value">Value to check</param>
/// <returns>True if the value passes, false otherwise</returns>
protected bool PassLongFilter(FilterItem<long?> filterItem, long? value)
{
if (filterItem.MatchesNeutral(null, value) == false)
return false;
else if (filterItem.MatchesPositive(null, value) == false)
return false;
else if (filterItem.MatchesNegative(null, value) == false)
return false;
return true;
}
/// <summary>
/// Determines if a value passes a string filter
/// </summary>
/// <param name="filterItem">Filter item to check</param>
/// <param name="value">Value to check</param>
/// <returns>True if the value passes, false otherwise</returns>
protected bool PassStringFilter(FilterItem<string> filterItem, string value)
{
if (filterItem.MatchesPositiveSet(value) == false)
return false;
if (filterItem.MatchesNegativeSet(value) == true)
return false; return false;
return true; return true;

View File

@@ -190,15 +190,15 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on area name // Filter on area name
if (!PassStringFilter(filter.DatItem_AreaName, Name)) if (!filter.PassStringFilter(filter.DatItem_AreaName, Name))
return false; return false;
// Filter on area size // Filter on area size
if (!PassLongFilter(filter.DatItem_AreaSize, Size)) if (!filter.PassLongFilter(filter.DatItem_AreaSize, Size))
return false; return false;
// Filter on area width // Filter on area width
if (!PassLongFilter(filter.DatItem_AreaWidth, Width)) if (!filter.PassLongFilter(filter.DatItem_AreaWidth, Width))
return false; return false;
// Filter on area endianness // Filter on area endianness

View File

@@ -228,19 +228,19 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on tag // Filter on tag
if (!PassStringFilter(filter.DatItem_Tag, Tag)) if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
return false; return false;
// Filter on fixed image // Filter on fixed image
if (!PassStringFilter(filter.DatItem_FixedImage, FixedImage)) if (!filter.PassStringFilter(filter.DatItem_FixedImage, FixedImage))
return false; return false;
// Filter on mandatory // Filter on mandatory
if (!PassLongFilter(filter.DatItem_Mandatory, Mandatory)) if (!filter.PassLongFilter(filter.DatItem_Mandatory, Mandatory))
return false; return false;
// Filter on interface // Filter on interface
if (!PassStringFilter(filter.DatItem_Interface, Interface)) if (!filter.PassStringFilter(filter.DatItem_Interface, Interface))
return false; return false;
// Filter on individual instances // Filter on individual instances

View File

@@ -143,7 +143,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
return true; return true;

View File

@@ -304,15 +304,15 @@ namespace SabreTools.Library.DatItems
#region Common #region Common
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on tag // Filter on tag
if (!PassStringFilter(filter.DatItem_Tag, Tag)) if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
return false; return false;
// Filter on mask // Filter on mask
if (!PassStringFilter(filter.DatItem_Mask, Mask)) if (!filter.PassStringFilter(filter.DatItem_Mask, Mask))
return false; return false;
// Filter on individual conditions // Filter on individual conditions

View File

@@ -449,31 +449,31 @@ namespace SabreTools.Library.DatItems
#region Common #region Common
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on MD5 // Filter on MD5
if (!PassStringFilter(filter.DatItem_MD5, MD5)) if (!filter.PassStringFilter(filter.DatItem_MD5, MD5))
return false; return false;
// Filter on SHA-1 // Filter on SHA-1
if (!PassStringFilter(filter.DatItem_SHA1, SHA1)) if (!filter.PassStringFilter(filter.DatItem_SHA1, SHA1))
return false; return false;
// Filter on merge tag // Filter on merge tag
if (!PassStringFilter(filter.DatItem_Merge, MergeTag)) if (!filter.PassStringFilter(filter.DatItem_Merge, MergeTag))
return false; return false;
// Filter on region // Filter on region
if (!PassStringFilter(filter.DatItem_Region, Region)) if (!filter.PassStringFilter(filter.DatItem_Region, Region))
return false; return false;
// Filter on index // Filter on index
if (!PassStringFilter(filter.DatItem_Index, Index)) if (!filter.PassStringFilter(filter.DatItem_Index, Index))
return false; return false;
// Filter on writable // Filter on writable
if (!PassBoolFilter(filter.DatItem_Writable, Writable)) if (!filter.PassBoolFilter(filter.DatItem_Writable, Writable))
return false; return false;
// Filter on status // Filter on status
@@ -483,7 +483,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on optional // Filter on optional
if (!PassBoolFilter(filter.DatItem_Optional, Optional)) if (!filter.PassBoolFilter(filter.DatItem_Optional, Optional))
return false; return false;
#endregion #endregion

View File

@@ -145,7 +145,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on area name // Filter on area name
if (!PassStringFilter(filter.DatItem_AreaName, Name)) if (!filter.PassStringFilter(filter.DatItem_AreaName, Name))
return false; return false;
return true; return true;

View File

@@ -306,7 +306,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on tag // Filter on tag
if (!PassStringFilter(filter.DatItem_Tag, Tag)) if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
return false; return false;
// Filter on display type // Filter on display type
@@ -316,51 +316,51 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on rotation // Filter on rotation
if (!PassLongFilter(filter.DatItem_Rotate, Rotate)) if (!filter.PassLongFilter(filter.DatItem_Rotate, Rotate))
return false; return false;
// Filter on flipx // Filter on flipx
if (!PassBoolFilter(filter.DatItem_FlipX, FlipX)) if (!filter.PassBoolFilter(filter.DatItem_FlipX, FlipX))
return false; return false;
// Filter on width // Filter on width
if (!PassLongFilter(filter.DatItem_Width, Width)) if (!filter.PassLongFilter(filter.DatItem_Width, Width))
return false; return false;
// Filter on height // Filter on height
if (!PassLongFilter(filter.DatItem_Height, Height)) if (!filter.PassLongFilter(filter.DatItem_Height, Height))
return false; return false;
// Filter on refresh // Filter on refresh
if (!PassDoubleFilter(filter.DatItem_Refresh, Refresh)) if (!filter.PassDoubleFilter(filter.DatItem_Refresh, Refresh))
return false; return false;
// Filter on pixclock // Filter on pixclock
if (!PassLongFilter(filter.DatItem_PixClock, PixClock)) if (!filter.PassLongFilter(filter.DatItem_PixClock, PixClock))
return false; return false;
// Filter on htotal // Filter on htotal
if (!PassLongFilter(filter.DatItem_HTotal, HTotal)) if (!filter.PassLongFilter(filter.DatItem_HTotal, HTotal))
return false; return false;
// Filter on hbend // Filter on hbend
if (!PassLongFilter(filter.DatItem_HBEnd, HBEnd)) if (!filter.PassLongFilter(filter.DatItem_HBEnd, HBEnd))
return false; return false;
// Filter on hbstart // Filter on hbstart
if (!PassLongFilter(filter.DatItem_HBStart, HBStart)) if (!filter.PassLongFilter(filter.DatItem_HBStart, HBStart))
return false; return false;
// Filter on vtotal // Filter on vtotal
if (!PassLongFilter(filter.DatItem_VTotal, VTotal)) if (!filter.PassLongFilter(filter.DatItem_VTotal, VTotal))
return false; return false;
// Filter on vbend // Filter on vbend
if (!PassLongFilter(filter.DatItem_VBEnd, VBEnd)) if (!filter.PassLongFilter(filter.DatItem_VBEnd, VBEnd))
return false; return false;
// Filter on vbstart // Filter on vbstart
if (!PassLongFilter(filter.DatItem_VBStart, VBStart)) if (!filter.PassLongFilter(filter.DatItem_VBStart, VBStart))
return false; return false;
return true; return true;

View File

@@ -143,7 +143,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Extension_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Extension_Name, Name))
return false; return false;
return true; return true;

View File

@@ -154,11 +154,11 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on info value // Filter on info value
if (!PassStringFilter(filter.DatItem_Value, Value)) if (!filter.PassStringFilter(filter.DatItem_Value, Value))
return false; return false;
return true; return true;

View File

@@ -186,19 +186,19 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on service // Filter on service
if (!PassBoolFilter(filter.DatItem_Service, Service)) if (!filter.PassBoolFilter(filter.DatItem_Service, Service))
return false; return false;
// Filter on tilt // Filter on tilt
if (!PassBoolFilter(filter.DatItem_Tilt, Tilt)) if (!filter.PassBoolFilter(filter.DatItem_Tilt, Tilt))
return false; return false;
// Filter on players // Filter on players
if (!PassLongFilter(filter.DatItem_Players, Players)) if (!filter.PassLongFilter(filter.DatItem_Players, Players))
return false; return false;
// Filter on coins // Filter on coins
if (!PassLongFilter(filter.DatItem_Coins, Coins)) if (!filter.PassLongFilter(filter.DatItem_Coins, Coins))
return false; return false;
// Filter on individual controls // Filter on individual controls

View File

@@ -154,11 +154,11 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Instance_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Instance_Name, Name))
return false; return false;
// Filter on brief name // Filter on brief name
if (!PassStringFilter(filter.DatItem_Instance_BriefName, BriefName)) if (!filter.PassStringFilter(filter.DatItem_Instance_BriefName, BriefName))
return false; return false;
return true; return true;

View File

@@ -173,15 +173,15 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Location_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Location_Name, Name))
return false; return false;
// Filter on number // Filter on number
if (!PassLongFilter(filter.DatItem_Location_Number, Number)) if (!filter.PassLongFilter(filter.DatItem_Location_Number, Number))
return false; return false;
// Filter on inverted // Filter on inverted
if (!PassBoolFilter(filter.DatItem_Location_Inverted, Inverted)) if (!filter.PassBoolFilter(filter.DatItem_Location_Inverted, Inverted))
return false; return false;
return true; return true;

View File

@@ -592,57 +592,39 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Machine_Comment // Machine_Comment
if (filter.Machine_Comment.MatchesPositiveSet(Comment) == false) if (!filter.PassStringFilter(filter.Machine_Comment, Comment))
return false;
if (filter.Machine_Comment.MatchesNegativeSet(Comment) == true)
return false; return false;
// Machine_Description // Machine_Description
if (filter.Machine_Description.MatchesPositiveSet(Description) == false) if (!filter.PassStringFilter(filter.Machine_Description, Description))
return false;
if (filter.Machine_Description.MatchesNegativeSet(Description) == true)
return false; return false;
// Machine_Year // Machine_Year
if (filter.Machine_Year.MatchesPositiveSet(Year) == false) if (!filter.PassStringFilter(filter.Machine_Year, Year))
return false;
if (filter.Machine_Year.MatchesNegativeSet(Year) == true)
return false; return false;
// Machine_Manufacturer // Machine_Manufacturer
if (filter.Machine_Manufacturer.MatchesPositiveSet(Manufacturer) == false) if (!filter.PassStringFilter(filter.Machine_Manufacturer, Manufacturer))
return false;
if (filter.Machine_Manufacturer.MatchesNegativeSet(Manufacturer) == true)
return false; return false;
// Machine_Publisher // Machine_Publisher
if (filter.Machine_Publisher.MatchesPositiveSet(Publisher) == false) if (!filter.PassStringFilter(filter.Machine_Publisher, Publisher))
return false;
if (filter.Machine_Publisher.MatchesNegativeSet(Publisher) == true)
return false; return false;
// Machine_Category // Machine_Category
if (filter.Machine_Category.MatchesPositiveSet(Category) == false) if (!filter.PassStringFilter(filter.Machine_Category, Category))
return false;
if (filter.Machine_Category.MatchesNegativeSet(Category) == true)
return false; return false;
// Machine_RomOf // Machine_RomOf
if (filter.Machine_RomOf.MatchesPositiveSet(RomOf) == false) if (!filter.PassStringFilter(filter.Machine_RomOf, RomOf))
return false;
if (filter.Machine_RomOf.MatchesNegativeSet(RomOf) == true)
return false; return false;
// Machine_CloneOf // Machine_CloneOf
if (filter.Machine_CloneOf.MatchesPositiveSet(CloneOf) == false) if (!filter.PassStringFilter(filter.Machine_CloneOf, CloneOf))
return false;
if (filter.Machine_CloneOf.MatchesNegativeSet(CloneOf) == true)
return false; return false;
// Machine_SampleOf // Machine_SampleOf
if (filter.Machine_SampleOf.MatchesPositiveSet(SampleOf) == false) if (!filter.PassStringFilter(filter.Machine_SampleOf, SampleOf))
return false;
if (filter.Machine_SampleOf.MatchesNegativeSet(SampleOf) == true)
return false; return false;
// Machine_Type // Machine_Type
@@ -656,45 +638,31 @@ namespace SabreTools.Library.DatItems
#region AttractMode #region AttractMode
// Machine_Players // Machine_Players
if (filter.Machine_Players.MatchesPositiveSet(Players) == false) if (!filter.PassStringFilter(filter.Machine_Players, Players))
return false;
if (filter.Machine_Players.MatchesNegativeSet(Players) == true)
return false; return false;
// Machine_Rotation // Machine_Rotation
if (filter.Machine_Rotation.MatchesPositiveSet(Rotation) == false) if (!filter.PassStringFilter(filter.Machine_Rotation, Rotation))
return false;
if (filter.Machine_Rotation.MatchesNegativeSet(Rotation) == true)
return false; return false;
// Machine_Control // Machine_Control
if (filter.Machine_Control.MatchesPositiveSet(Control) == false) if (!filter.PassStringFilter(filter.Machine_Control, Control))
return false;
if (filter.Machine_Control.MatchesNegativeSet(Control) == true)
return false; return false;
// Machine_Status // Machine_Status
if (filter.Machine_Status.MatchesPositiveSet(Status) == false) if (!filter.PassStringFilter(filter.Machine_Status, Status))
return false;
if (filter.Machine_Status.MatchesNegativeSet(Status) == true)
return false; return false;
// Machine_DisplayCount // Machine_DisplayCount
if (filter.Machine_DisplayCount.MatchesPositiveSet(DisplayCount) == false) if (!filter.PassStringFilter(filter.Machine_DisplayCount, DisplayCount))
return false;
if (filter.Machine_DisplayCount.MatchesNegativeSet(DisplayCount) == true)
return false; return false;
// Machine_DisplayType // Machine_DisplayType
if (filter.Machine_DisplayType.MatchesPositiveSet(DisplayType) == false) if (!filter.PassStringFilter(filter.Machine_DisplayType, DisplayType))
return false;
if (filter.Machine_DisplayType.MatchesNegativeSet(DisplayType) == true)
return false; return false;
// Machine_Buttons // Machine_Buttons
if (filter.Machine_Buttons.MatchesPositiveSet(Buttons) == false) if (!filter.PassStringFilter(filter.Machine_Buttons, Buttons))
return false;
if (filter.Machine_Buttons.MatchesNegativeSet(Buttons) == true)
return false; return false;
#endregion #endregion
@@ -702,9 +670,7 @@ namespace SabreTools.Library.DatItems
#region ListXML #region ListXML
// Machine_SourceFile // Machine_SourceFile
if (filter.Machine_SourceFile.MatchesPositiveSet(SourceFile) == false) if (!filter.PassStringFilter(filter.Machine_SourceFile, SourceFile))
return false;
if (filter.Machine_SourceFile.MatchesNegativeSet(SourceFile) == true)
return false; return false;
// Machine_Runnable // Machine_Runnable
@@ -713,20 +679,16 @@ namespace SabreTools.Library.DatItems
if (filter.Machine_Runnable.MatchesNegative(Runnable.NULL, Runnable) == true) if (filter.Machine_Runnable.MatchesNegative(Runnable.NULL, Runnable) == true)
return false; return false;
#endregion // ListXML #endregion
#region Logiqx #region Logiqx
// Machine_Board // Machine_Board
if (filter.Machine_Board.MatchesPositiveSet(Board) == false) if (!filter.PassStringFilter(filter.Machine_Board, Board))
return false;
if (filter.Machine_Board.MatchesNegativeSet(Board) == true)
return false; return false;
// Machine_RebuildTo // Machine_RebuildTo
if (filter.Machine_RebuildTo.MatchesPositiveSet(RebuildTo) == false) if (!filter.PassStringFilter(filter.Machine_RebuildTo, RebuildTo))
return false;
if (filter.Machine_RebuildTo.MatchesNegativeSet(RebuildTo) == true)
return false; return false;
#endregion #endregion
@@ -734,55 +696,39 @@ namespace SabreTools.Library.DatItems
#region Logiqx EmuArc #region Logiqx EmuArc
// Machine_TitleID // Machine_TitleID
if (filter.Machine_TitleID.MatchesPositiveSet(TitleID) == false) if (!filter.PassStringFilter(filter.Machine_TitleID, TitleID))
return false;
if (filter.Machine_TitleID.MatchesNegativeSet(TitleID) == true)
return false; return false;
// Machine_Developer // Machine_Developer
if (filter.Machine_Developer.MatchesPositiveSet(Developer) == false) if (!filter.PassStringFilter(filter.Machine_Developer, Developer))
return false;
if (filter.Machine_Developer.MatchesNegativeSet(Developer) == true)
return false; return false;
// Machine_Genre // Machine_Genre
if (filter.Machine_Genre.MatchesPositiveSet(Genre) == false) if (!filter.PassStringFilter(filter.Machine_Genre, Genre))
return false;
if (filter.Machine_Genre.MatchesNegativeSet(Genre) == true)
return false; return false;
// Machine_Subgenre // Machine_Subgenre
if (filter.Machine_Subgenre.MatchesPositiveSet(Subgenre) == false) if (!filter.PassStringFilter(filter.Machine_Subgenre, Subgenre))
return false;
if (filter.Machine_Subgenre.MatchesNegativeSet(Subgenre) == true)
return false; return false;
// Machine_Ratings // Machine_Ratings
if (filter.Machine_Ratings.MatchesPositiveSet(Ratings) == false) if (!filter.PassStringFilter(filter.Machine_Ratings, Ratings))
return false;
if (filter.Machine_Ratings.MatchesNegativeSet(Ratings) == true)
return false; return false;
// Machine_Score // Machine_Score
if (filter.Machine_Score.MatchesPositiveSet(Score) == false) if (!filter.PassStringFilter(filter.Machine_Score, Score))
return false;
if (filter.Machine_Score.MatchesNegativeSet(Score) == true)
return false; return false;
// Machine_Enabled // Machine_Enabled
if (filter.Machine_Enabled.MatchesPositiveSet(Enabled) == false) if (!filter.PassStringFilter(filter.Machine_Enabled, Enabled))
return false;
if (filter.Machine_Enabled.MatchesNegativeSet(Enabled) == true)
return false; return false;
// Machine_CRC // Machine_CRC
if (filter.Machine_CRC.MatchesNeutral(null, Crc) == false) if (!filter.PassBoolFilter(filter.Machine_CRC, Crc))
return false; return false;
// Machine_RelatedTo // Machine_RelatedTo
if (filter.Machine_RelatedTo.MatchesPositiveSet(RelatedTo) == false) if (!filter.PassStringFilter(filter.Machine_RelatedTo, RelatedTo))
return false;
if (filter.Machine_RelatedTo.MatchesNegativeSet(RelatedTo) == true)
return false; return false;
#endregion #endregion
@@ -790,21 +736,15 @@ namespace SabreTools.Library.DatItems
#region OpenMSX #region OpenMSX
// Machine_GenMSXID // Machine_GenMSXID
if (filter.Machine_GenMSXID.MatchesPositiveSet(GenMSXID) == false) if (!filter.PassStringFilter(filter.Machine_GenMSXID, GenMSXID))
return false;
if (filter.Machine_GenMSXID.MatchesNegativeSet(GenMSXID) == true)
return false; return false;
// Machine_System // Machine_System
if (filter.Machine_System.MatchesPositiveSet(System) == false) if (!filter.PassStringFilter(filter.Machine_System, System))
return false;
if (filter.Machine_System.MatchesNegativeSet(System) == true)
return false; return false;
// Machine_Country // Machine_Country
if (filter.Machine_Country.MatchesPositiveSet(Country) == false) if (!filter.PassStringFilter(filter.Machine_Country, Country))
return false;
if (filter.Machine_Country.MatchesNegativeSet(Country) == true)
return false; return false;
#endregion #endregion

View File

@@ -344,23 +344,23 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on MD5 // Filter on MD5
if (!PassStringFilter(filter.DatItem_MD5, MD5)) if (!filter.PassStringFilter(filter.DatItem_MD5, MD5))
return false; return false;
// Filter on SHA-1 // Filter on SHA-1
if (!PassStringFilter(filter.DatItem_SHA1, SHA1)) if (!filter.PassStringFilter(filter.DatItem_SHA1, SHA1))
return false; return false;
// Filter on SHA-256 // Filter on SHA-256
if (!PassStringFilter(filter.DatItem_SHA256, SHA256)) if (!filter.PassStringFilter(filter.DatItem_SHA256, SHA256))
return false; return false;
// Filter on SpamSum // Filter on SpamSum
if (!PassStringFilter(filter.DatItem_SpamSum, SpamSum)) if (!filter.PassStringFilter(filter.DatItem_SpamSum, SpamSum))
return false; return false;
return true; return true;

View File

@@ -181,11 +181,11 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on part name // Filter on part name
if (!PassStringFilter(filter.DatItem_Part_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Part_Name, Name))
return false; return false;
// Filter on part interface // Filter on part interface
if (!PassStringFilter(filter.DatItem_Part_Interface, Interface)) if (!filter.PassStringFilter(filter.DatItem_Part_Interface, Interface))
return false; return false;
// Filter on features // Filter on features

View File

@@ -154,11 +154,11 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on name // Filter on name
if (!PassStringFilter(filter.DatItem_Part_Feature_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Part_Feature_Name, Name))
return false; return false;
// Filter on value // Filter on value
if (!PassStringFilter(filter.DatItem_Part_Feature_Value, Value)) if (!filter.PassStringFilter(filter.DatItem_Part_Feature_Value, Value))
return false; return false;
return true; return true;

View File

@@ -136,7 +136,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on tag // Filter on tag
if (!PassStringFilter(filter.DatItem_Tag, Tag)) if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
return false; return false;
// Filter on individual analogs // Filter on individual analogs

View File

@@ -168,15 +168,15 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on default // Filter on default
if (!PassBoolFilter(filter.DatItem_Default, Default)) if (!filter.PassBoolFilter(filter.DatItem_Default, Default))
return false; return false;
// Filter on content // Filter on content
if (!PassStringFilter(filter.DatItem_Content, Content)) if (!filter.PassStringFilter(filter.DatItem_Content, Content))
return false; return false;
return true; return true;

View File

@@ -198,23 +198,23 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on region // Filter on region
if (!PassStringFilter(filter.DatItem_Region, Region)) if (!filter.PassStringFilter(filter.DatItem_Region, Region))
return false; return false;
// Filter on language // Filter on language
if (!PassStringFilter(filter.DatItem_Language, Language)) if (!filter.PassStringFilter(filter.DatItem_Language, Language))
return false; return false;
// Filter on date // Filter on date
if (!PassStringFilter(filter.DatItem_Date, Date)) if (!filter.PassStringFilter(filter.DatItem_Date, Date))
return false; return false;
// Filter on default // Filter on default
if (!PassBoolFilter(filter.DatItem_Default, Default)) if (!filter.PassBoolFilter(filter.DatItem_Default, Default))
return false; return false;
return true; return true;

View File

@@ -795,65 +795,65 @@ namespace SabreTools.Library.DatItems
#region Common #region Common
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on bios // Filter on bios
if (!PassStringFilter(filter.DatItem_Bios, Bios)) if (!filter.PassStringFilter(filter.DatItem_Bios, Bios))
return false; return false;
// Filter on rom size // Filter on rom size
if (!PassLongFilter(filter.DatItem_Size, Size)) if (!filter.PassLongFilter(filter.DatItem_Size, Size))
return false; return false;
// Filter on CRC // Filter on CRC
if (!PassStringFilter(filter.DatItem_CRC, CRC)) if (!filter.PassStringFilter(filter.DatItem_CRC, CRC))
return false; return false;
// Filter on MD5 // Filter on MD5
if (!PassStringFilter(filter.DatItem_MD5, MD5)) if (!filter.PassStringFilter(filter.DatItem_MD5, MD5))
return false; return false;
#if NET_FRAMEWORK #if NET_FRAMEWORK
// Filter on RIPEMD160 // Filter on RIPEMD160
if (!PassStringFilter(filter.DatItem_RIPEMD160, RIPEMD160)) if (!filter.PassStringFilter(filter.DatItem_RIPEMD160, RIPEMD160))
return false; return false;
#endif #endif
// Filter on SHA-1 // Filter on SHA-1
if (!PassStringFilter(filter.DatItem_SHA1, SHA1)) if (!filter.PassStringFilter(filter.DatItem_SHA1, SHA1))
return false; return false;
// Filter on SHA-256 // Filter on SHA-256
if (!PassStringFilter(filter.DatItem_SHA256, SHA256)) if (!filter.PassStringFilter(filter.DatItem_SHA256, SHA256))
return false; return false;
// Filter on SHA-384 // Filter on SHA-384
if (!PassStringFilter(filter.DatItem_SHA384, SHA384)) if (!filter.PassStringFilter(filter.DatItem_SHA384, SHA384))
return false; return false;
// Filter on SHA-512 // Filter on SHA-512
if (!PassStringFilter(filter.DatItem_SHA512, SHA512)) if (!filter.PassStringFilter(filter.DatItem_SHA512, SHA512))
return false; return false;
// Filter on SpamSum // Filter on SpamSum
if (!PassStringFilter(filter.DatItem_SpamSum, SpamSum)) if (!filter.PassStringFilter(filter.DatItem_SpamSum, SpamSum))
return false; return false;
// Filter on merge tag // Filter on merge tag
if (!PassStringFilter(filter.DatItem_Merge, MergeTag)) if (!filter.PassStringFilter(filter.DatItem_Merge, MergeTag))
return false; return false;
// Filter on region // Filter on region
if (!PassStringFilter(filter.DatItem_Region, Region)) if (!filter.PassStringFilter(filter.DatItem_Region, Region))
return false; return false;
// Filter on offset // Filter on offset
if (!PassStringFilter(filter.DatItem_Offset, Offset)) if (!filter.PassStringFilter(filter.DatItem_Offset, Offset))
return false; return false;
// Filter on date // Filter on date
if (!PassStringFilter(filter.DatItem_Date, Date)) if (!filter.PassStringFilter(filter.DatItem_Date, Date))
return false; return false;
// Filter on status // Filter on status
@@ -863,11 +863,11 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on optional // Filter on optional
if (!PassBoolFilter(filter.DatItem_Optional, Optional)) if (!filter.PassBoolFilter(filter.DatItem_Optional, Optional))
return false; return false;
// Filter on inverted // Filter on inverted
if (!PassBoolFilter(filter.DatItem_Inverted, Inverted)) if (!filter.PassBoolFilter(filter.DatItem_Inverted, Inverted))
return false; return false;
#endregion #endregion
@@ -875,11 +875,11 @@ namespace SabreTools.Library.DatItems
#region AttractMode #region AttractMode
// Filter on alt name // Filter on alt name
if (!PassStringFilter(filter.DatItem_AltName, AltName)) if (!filter.PassStringFilter(filter.DatItem_AltName, AltName))
return false; return false;
// Filter on alt title // Filter on alt title
if (!PassStringFilter(filter.DatItem_AltTitle, AltTitle)) if (!filter.PassStringFilter(filter.DatItem_AltTitle, AltTitle))
return false; return false;
#endregion #endregion
@@ -887,7 +887,7 @@ namespace SabreTools.Library.DatItems
#region OpenMSX #region OpenMSX
// Filter on original // Filter on original
if (!PassStringFilter(filter.DatItem_Original, Original?.Content)) if (!filter.PassStringFilter(filter.DatItem_Original, Original?.Content))
return false; return false;
// Filter on OpenMSX subtype // Filter on OpenMSX subtype
@@ -897,15 +897,15 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on OpenMSX type // Filter on OpenMSX type
if (!PassStringFilter(filter.DatItem_OpenMSXType, OpenMSXType)) if (!filter.PassStringFilter(filter.DatItem_OpenMSXType, OpenMSXType))
return false; return false;
// Filter on remark // Filter on remark
if (!PassStringFilter(filter.DatItem_Remark, Remark)) if (!filter.PassStringFilter(filter.DatItem_Remark, Remark))
return false; return false;
// Filter on boot // Filter on boot
if (!PassStringFilter(filter.DatItem_Boot, Boot)) if (!filter.PassStringFilter(filter.DatItem_Boot, Boot))
return false; return false;
#endregion #endregion
@@ -919,7 +919,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on value // Filter on value
if (!PassStringFilter(filter.DatItem_Value, Value)) if (!filter.PassStringFilter(filter.DatItem_Value, Value))
return false; return false;
// Filter on DataArea // Filter on DataArea

View File

@@ -143,7 +143,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
return true; return true;

View File

@@ -202,15 +202,15 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Setting_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Setting_Name, Name))
return false; return false;
// Filter on value // Filter on value
if (!PassStringFilter(filter.DatItem_Setting_Value, Value)) if (!filter.PassStringFilter(filter.DatItem_Setting_Value, Value))
return false; return false;
// Filter on default // Filter on default
if (!PassBoolFilter(filter.DatItem_Setting_Default, Default)) if (!filter.PassBoolFilter(filter.DatItem_Setting_Default, Default))
return false; return false;
// Filter on individual conditions // Filter on individual conditions

View File

@@ -154,11 +154,11 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on value // Filter on value
if (!PassStringFilter(filter.DatItem_Value, Value)) if (!filter.PassStringFilter(filter.DatItem_Value, Value))
return false; return false;
return true; return true;

View File

@@ -175,7 +175,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on individual slot options // Filter on individual slot options

View File

@@ -170,15 +170,15 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_SlotOption_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_SlotOption_Name, Name))
return false; return false;
// Filter on device name // Filter on device name
if (!PassStringFilter(filter.DatItem_SlotOption_DeviceName, DeviceName)) if (!filter.PassStringFilter(filter.DatItem_SlotOption_DeviceName, DeviceName))
return false; return false;
// Filter on default // Filter on default
if (!PassBoolFilter(filter.DatItem_SlotOption_Default, Default)) if (!filter.PassBoolFilter(filter.DatItem_SlotOption_Default, Default))
return false; return false;
return true; return true;

View File

@@ -172,7 +172,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on item name // Filter on item name
if (!PassStringFilter(filter.DatItem_Name, Name)) if (!filter.PassStringFilter(filter.DatItem_Name, Name))
return false; return false;
// Filter on status // Filter on status
@@ -182,7 +182,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on filter // Filter on filter
if (!PassStringFilter(filter.DatItem_Filter, Filter)) if (!filter.PassStringFilter(filter.DatItem_Filter, Filter))
return false; return false;
return true; return true;

View File

@@ -109,7 +109,7 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on channels // Filter on channels
if (!PassLongFilter(filter.DatItem_Channels, Channels)) if (!filter.PassLongFilter(filter.DatItem_Channels, Channels))
return false; return false;
return true; return true;

View File

@@ -1209,6 +1209,76 @@ namespace SabreTools.Library.Filtering
#endregion #endregion
#region Filter Running
/// <summary>
/// Determines if a value passes a bool? filter
/// </summary>
/// <param name="filterItem">Filter item to check</param>
/// <param name="value">Value to check</param>
/// <returns>True if the value passes, false otherwise</returns>
public bool PassBoolFilter(FilterItem<bool?> filterItem, bool? value)
{
if (filterItem.MatchesNeutral(null, value) == false)
return false;
return true;
}
/// <summary>
/// Determines if a value passes a double? filter
/// </summary>
/// <param name="filterItem">Filter item to check</param>
/// <param name="value">Value to check</param>
/// <returns>True if the value passes, false otherwise</returns>
public bool PassDoubleFilter(FilterItem<double?> filterItem, double? value)
{
if (filterItem.MatchesNeutral(null, value) == false)
return false;
else if (filterItem.MatchesPositive(null, value) == false)
return false;
else if (filterItem.MatchesNegative(null, value) == false)
return false;
return true;
}
/// <summary>
/// Determines if a value passes a long? filter
/// </summary>
/// <param name="filterItem">Filter item to check</param>
/// <param name="value">Value to check</param>
/// <returns>True if the value passes, false otherwise</returns>
public bool PassLongFilter(FilterItem<long?> filterItem, long? value)
{
if (filterItem.MatchesNeutral(null, value) == false)
return false;
else if (filterItem.MatchesPositive(null, value) == false)
return false;
else if (filterItem.MatchesNegative(null, value) == false)
return false;
return true;
}
/// <summary>
/// Determines if a value passes a string filter
/// </summary>
/// <param name="filterItem">Filter item to check</param>
/// <param name="value">Value to check</param>
/// <returns>True if the value passes, false otherwise</returns>
public bool PassStringFilter(FilterItem<string> filterItem, string value)
{
if (filterItem.MatchesPositiveSet(value) == false)
return false;
if (filterItem.MatchesNegativeSet(value) == true)
return false;
return true;
}
#endregion
#endregion // Instance Methods #endregion // Instance Methods
} }
} }