Files
ZuneShell.dll/ZuneDBApi/MicrosoftZuneLibrary/SyncRules.cs
T

528 lines
28 KiB
C#

using System;
using System.Collections;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace MicrosoftZuneLibrary
{
public class SyncRules : IDisposable
{
private readonly CComPtrMgd_003CIEndpointHost_003E m_spEndpointHost;
private int m_iDeviceID;
private ArrayList m_listAllowedToAdd;
private ArrayList m_listAllowedToExclude;
internal unsafe SyncRules(IEndpointHost* pEndpointHost)
{
//IL_0083: Expected I, but got I8
CComPtrMgd_003CIEndpointHost_003E spEndpointHost = new CComPtrMgd_003CIEndpointHost_003E();
try
{
m_spEndpointHost = spEndpointHost;
base._002Ector();
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 10, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
m_spEndpointHost.op_Assign(pEndpointHost);
IEndpointHost* p = m_spEndpointHost.p;
int iDeviceID;
((delegate* unmanaged[Cdecl, Cdecl]<IntPtr, EEndpointHostProperty, int*, int>)(*(ulong*)(*(long*)p + 136)))((nint)p, EEndpointHostProperty.eEndpointHostPropertyDatabaseEndpointId, &iDeviceID);
m_iDeviceID = iDeviceID;
(m_listAllowedToAdd = new ArrayList()).Add(EMediaTypes.eMediaTypeAudio);
m_listAllowedToAdd.Add(EMediaTypes.eMediaTypeAudioAlbum);
m_listAllowedToAdd.Add(EMediaTypes.eMediaTypePersonArtist);
m_listAllowedToAdd.Add(EMediaTypes.eMediaTypeImage);
m_listAllowedToAdd.Add(EMediaTypes.eMediaTypeVideo);
m_listAllowedToAdd.Add(EMediaTypes.eMediaTypePodcastEpisode);
m_listAllowedToAdd.Add(EMediaTypes.eMediaTypePodcastSeries);
m_listAllowedToAdd.Add(EMediaTypes.eMediaTypePlaylist);
m_listAllowedToAdd.Add(EMediaTypes.eMediaTypeFolder);
m_listAllowedToAdd.Add(EMediaTypes.eMediaTypeGenre);
m_listAllowedToAdd.Add(EMediaTypes.eMediaTypeUserCard);
m_listAllowedToAdd.Add(EMediaTypes.eMediaTypeApp);
(m_listAllowedToExclude = new ArrayList()).Add(EMediaTypes.eMediaTypeAudio);
m_listAllowedToExclude.Add(EMediaTypes.eMediaTypeAudioAlbum);
m_listAllowedToExclude.Add(EMediaTypes.eMediaTypePersonArtist);
m_listAllowedToExclude.Add(EMediaTypes.eMediaTypeImage);
m_listAllowedToExclude.Add(EMediaTypes.eMediaTypeVideo);
m_listAllowedToExclude.Add(EMediaTypes.eMediaTypePodcastEpisode);
m_listAllowedToExclude.Add(EMediaTypes.eMediaTypePodcastSeries);
m_listAllowedToExclude.Add(EMediaTypes.eMediaTypePlaylist);
m_listAllowedToExclude.Add(EMediaTypes.eMediaTypeFolder);
m_listAllowedToExclude.Add(EMediaTypes.eMediaTypeGenre);
m_listAllowedToExclude.Add(EMediaTypes.eMediaTypeUserCard);
m_listAllowedToExclude.Add(EMediaTypes.eMediaTypeApp);
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 11, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
}
catch
{
//try-fault
((IDisposable)m_spEndpointHost).Dispose();
throw;
}
}
private unsafe void _007ESyncRules()
{
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 12, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
m_spEndpointHost.Release();
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 13, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
}
public unsafe int Add(int[] rgIds, EMediaTypes mediaType)
{
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 14, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
int num;
if (!m_listAllowedToAdd.Contains(mediaType))
{
num = -2147024809;
}
else
{
num = RemoveInternal(rgIds, mediaType, EDeviceSyncRuleType.eDeviceSyncRuleTypeExclude, fDeviceFolderIds: false);
if (num >= 0)
{
num = AddInternal(rgIds, mediaType, EDeviceSyncRuleType.eDeviceSyncRuleTypeIncludeAll, fAutoSelectRuleType: true);
}
}
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_d(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 15, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids), num);
}
return num;
}
public unsafe int Add(int[] rgIds, EMediaTypes mediaType, EDeviceSyncRuleType ruleType)
{
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 16, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
int num;
if (EMediaTypes.eMediaTypePodcastSeries != mediaType)
{
num = -2147024809;
}
else
{
num = RemoveInternal(rgIds, EMediaTypes.eMediaTypePodcastSeries, EDeviceSyncRuleType.eDeviceSyncRuleTypeExclude, fDeviceFolderIds: false);
if (num >= 0)
{
num = Remove(rgIds, EMediaTypes.eMediaTypePodcastSeries, fDeviceFolderIds: false);
if (num >= 0)
{
num = AddInternal(rgIds, EMediaTypes.eMediaTypePodcastSeries, ruleType, fAutoSelectRuleType: false);
}
}
}
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_d(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 17, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids), num);
}
return num;
}
public unsafe int AddDeviceSyncRuleWithValue(int[] rgIds, int value)
{
int num = 0;
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 18, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
int num2 = 0;
if (0 < (nint)rgIds.LongLength)
{
while (num >= 0)
{
num = _003CModule_003E.ZuneLibraryExports_002EAddDeviceSyncRuleWithValue(EDeviceSyncRuleType.eDeviceSyncRuleTypeSyncEpisodesCount, m_iDeviceID, EMediaTypes.eMediaTypePodcastSeries, rgIds[num2], value);
if (num < 0)
{
break;
}
num2++;
if (num2 >= (nint)rgIds.LongLength)
{
break;
}
}
}
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_d(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 19, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids), num);
}
return num;
}
public unsafe int Remove(int[] rgIds, EMediaTypes mediaType, [MarshalAs(UnmanagedType.U1)] bool fDeviceFolderIds)
{
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 24, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
int num = (m_listAllowedToAdd.Contains(mediaType) ? RemoveInternal(rgIds, mediaType, EDeviceSyncRuleType.eDeviceSyncRuleTypeIncludeAll, fDeviceFolderIds) : (-2147024809));
if (EMediaTypes.eMediaTypePodcastSeries == mediaType && num >= 0)
{
num = RemoveInternal(rgIds, EMediaTypes.eMediaTypePodcastSeries, EDeviceSyncRuleType.eDeviceSyncRuleTypeNone, fDeviceFolderIds);
if (num >= 0)
{
num = RemoveInternal(rgIds, EMediaTypes.eMediaTypePodcastSeries, EDeviceSyncRuleType.eDeviceSyncRuleTypeAllUnplayed, fDeviceFolderIds);
if (num >= 0)
{
num = RemoveInternal(rgIds, EMediaTypes.eMediaTypePodcastSeries, EDeviceSyncRuleType.eDeviceSyncRuleTypeFirstUnplayed, fDeviceFolderIds);
}
}
}
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_d(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 25, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids), num);
}
return num;
}
public unsafe int Exclude(int[] rgIds, EMediaTypes mediaType)
{
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 20, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
int num;
if (!m_listAllowedToExclude.Contains(mediaType))
{
num = -2147024809;
}
else
{
num = Remove(rgIds, mediaType, fDeviceFolderIds: false);
if (num >= 0)
{
num = AddInternal(rgIds, mediaType, EDeviceSyncRuleType.eDeviceSyncRuleTypeExclude, fAutoSelectRuleType: false);
}
}
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_d(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 21, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids), num);
}
return num;
}
public unsafe int Unexclude(int[] rgIds, EMediaTypes mediaType)
{
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 26, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
int num = (m_listAllowedToExclude.Contains(mediaType) ? RemoveInternal(rgIds, mediaType, EDeviceSyncRuleType.eDeviceSyncRuleTypeExclude, fDeviceFolderIds: false) : (-2147024809));
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_d(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 27, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids), num);
}
return num;
}
public unsafe int GetSyncRuleForMedia(EMediaTypes mediaType, int iMediaItemId, ref EDeviceSyncRuleType ruleType)
{
EDeviceSyncRuleType eDeviceSyncRuleType;
int num = _003CModule_003E.ZuneLibraryExports_002EGetSyncRuleForMedia(m_iDeviceID, mediaType, iMediaItemId, &eDeviceSyncRuleType);
if (num >= 0)
{
ruleType = eDeviceSyncRuleType;
}
return num;
}
public unsafe int GetSyncRuleValueForMedia(int iMediaItemId, ref int iValue)
{
int num;
int num2 = _003CModule_003E.ZuneLibraryExports_002EGetSyncRuleValueForMedia(EDeviceSyncRuleType.eDeviceSyncRuleTypeSyncEpisodesCount, m_iDeviceID, EMediaTypes.eMediaTypePodcastSeries, iMediaItemId, &num);
if (num2 >= 0)
{
iValue = num;
}
return num2;
}
public unsafe int GetCategorySyncMode(ESyncCategory cat, ref ESyncMode mode, [MarshalAs(UnmanagedType.U1)] bool fEstablishingPartnership)
{
//IL_0058: Expected I, but got I8
//IL_0058: Expected I, but got I8
//IL_007d: Expected I, but got I8
//IL_007d: Expected I, but got I8
if (m_spEndpointHost.p == null)
{
_003CModule_003E._ZuneShipAssert(1002u, 454u);
return -2147418113;
}
CComPtrNtv_003CIMetadataManager_003E cComPtrNtv_003CIMetadataManager_003E;
*(long*)(&cComPtrNtv_003CIMetadataManager_003E) = 0L;
int num;
try
{
CComPtrNtv_003CIDeviceSyncRulesProvider_003E cComPtrNtv_003CIDeviceSyncRulesProvider_003E;
*(long*)(&cComPtrNtv_003CIDeviceSyncRulesProvider_003E) = 0L;
try
{
mode = ESyncMode.eSyncModeInvalid;
num = _003CModule_003E.GetSingleton((_GUID)_003CModule_003E._GUID_6dd7146d_7a19_4fbb_9235_9e6c382fcc71, (void**)(&cComPtrNtv_003CIMetadataManager_003E));
if (num >= 0)
{
long num2 = *(long*)(&cComPtrNtv_003CIMetadataManager_003E);
__s_GUID gUID_b12dc962_cc1b_46c5_a92a_68f1f2b9bff = _003CModule_003E._GUID_b12dc962_cc1b_46c5_a92a_68f1f2b9bff3;
num = ((delegate* unmanaged[Cdecl, Cdecl]<IntPtr, _GUID, void**, int>)(*(ulong*)(*(long*)(*(ulong*)(&cComPtrNtv_003CIMetadataManager_003E)) + 24)))((nint)num2, (_GUID)gUID_b12dc962_cc1b_46c5_a92a_68f1f2b9bff, (void**)(&cComPtrNtv_003CIDeviceSyncRulesProvider_003E));
if (num >= 0)
{
ESyncMode eSyncMode = ESyncMode.eSyncModeInvalid;
long num3 = *(long*)(&cComPtrNtv_003CIDeviceSyncRulesProvider_003E);
int iDeviceID = m_iDeviceID;
num = ((delegate* unmanaged[Cdecl, Cdecl]<IntPtr, int, ESyncCategory, ESyncMode*, byte, int>)(*(ulong*)(*(long*)(*(ulong*)(&cComPtrNtv_003CIDeviceSyncRulesProvider_003E)) + 128)))((nint)num3, iDeviceID, cat, &eSyncMode, fEstablishingPartnership ? ((byte)1) : ((byte)0));
if (num >= 0)
{
mode = eSyncMode;
}
}
}
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_LLd(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 30, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids), (uint)cat, (uint)mode, num);
}
}
catch
{
//try-fault
_003CModule_003E.___CxxCallUnwindDtor((delegate*<void*, void>)(delegate*<CComPtrNtv_003CIDeviceSyncRulesProvider_003E*, void>)(&_003CModule_003E.CComPtrNtv_003CIDeviceSyncRulesProvider_003E_002E_007Bdtor_007D), &cComPtrNtv_003CIDeviceSyncRulesProvider_003E);
throw;
}
_003CModule_003E.CComPtrNtv_003CIDeviceSyncRulesProvider_003E_002ERelease(&cComPtrNtv_003CIDeviceSyncRulesProvider_003E);
}
catch
{
//try-fault
_003CModule_003E.___CxxCallUnwindDtor((delegate*<void*, void>)(delegate*<CComPtrNtv_003CIMetadataManager_003E*, void>)(&_003CModule_003E.CComPtrNtv_003CIMetadataManager_003E_002E_007Bdtor_007D), &cComPtrNtv_003CIMetadataManager_003E);
throw;
}
_003CModule_003E.CComPtrNtv_003CIMetadataManager_003E_002ERelease(&cComPtrNtv_003CIMetadataManager_003E);
return num;
}
public unsafe int SetCategorySyncMode(ESyncCategory cat, ESyncMode mode)
{
//IL_0055: Expected I, but got I8
//IL_0055: Expected I, but got I8
//IL_0076: Expected I, but got I8
//IL_0076: Expected I, but got I8
//IL_0099: Expected I, but got I8
if (m_spEndpointHost.p == null)
{
_003CModule_003E._ZuneShipAssert(1002u, 504u);
return -2147418113;
}
CComPtrNtv_003CIMetadataManager_003E cComPtrNtv_003CIMetadataManager_003E;
*(long*)(&cComPtrNtv_003CIMetadataManager_003E) = 0L;
int num;
try
{
CComPtrNtv_003CIDeviceSyncRulesProvider_003E cComPtrNtv_003CIDeviceSyncRulesProvider_003E;
*(long*)(&cComPtrNtv_003CIDeviceSyncRulesProvider_003E) = 0L;
try
{
num = _003CModule_003E.GetSingleton((_GUID)_003CModule_003E._GUID_6dd7146d_7a19_4fbb_9235_9e6c382fcc71, (void**)(&cComPtrNtv_003CIMetadataManager_003E));
if (num >= 0)
{
long num2 = *(long*)(&cComPtrNtv_003CIMetadataManager_003E);
__s_GUID gUID_b12dc962_cc1b_46c5_a92a_68f1f2b9bff = _003CModule_003E._GUID_b12dc962_cc1b_46c5_a92a_68f1f2b9bff3;
num = ((delegate* unmanaged[Cdecl, Cdecl]<IntPtr, _GUID, void**, int>)(*(ulong*)(*(long*)(*(ulong*)(&cComPtrNtv_003CIMetadataManager_003E)) + 24)))((nint)num2, (_GUID)gUID_b12dc962_cc1b_46c5_a92a_68f1f2b9bff, (void**)(&cComPtrNtv_003CIDeviceSyncRulesProvider_003E));
if (num >= 0)
{
long num3 = *(long*)(&cComPtrNtv_003CIDeviceSyncRulesProvider_003E);
int iDeviceID = m_iDeviceID;
num = ((delegate* unmanaged[Cdecl, Cdecl]<IntPtr, int, ESyncCategory, ESyncMode, int>)(*(ulong*)(*(long*)(*(ulong*)(&cComPtrNtv_003CIDeviceSyncRulesProvider_003E)) + 136)))((nint)num3, iDeviceID, cat, mode);
if (num >= 0)
{
IEndpointHost* p = m_spEndpointHost.p;
num = ((delegate* unmanaged[Cdecl, Cdecl]<IntPtr, EEndpointHostAction, int>)(*(ulong*)(*(long*)p + 296)))((nint)p, EEndpointHostAction.eEndpointHostActionResetGasGauge);
}
}
}
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_LLd(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 31, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids), (uint)cat, (uint)mode, num);
}
}
catch
{
//try-fault
_003CModule_003E.___CxxCallUnwindDtor((delegate*<void*, void>)(delegate*<CComPtrNtv_003CIDeviceSyncRulesProvider_003E*, void>)(&_003CModule_003E.CComPtrNtv_003CIDeviceSyncRulesProvider_003E_002E_007Bdtor_007D), &cComPtrNtv_003CIDeviceSyncRulesProvider_003E);
throw;
}
_003CModule_003E.CComPtrNtv_003CIDeviceSyncRulesProvider_003E_002ERelease(&cComPtrNtv_003CIDeviceSyncRulesProvider_003E);
}
catch
{
//try-fault
_003CModule_003E.___CxxCallUnwindDtor((delegate*<void*, void>)(delegate*<CComPtrNtv_003CIMetadataManager_003E*, void>)(&_003CModule_003E.CComPtrNtv_003CIMetadataManager_003E_002E_007Bdtor_007D), &cComPtrNtv_003CIMetadataManager_003E);
throw;
}
_003CModule_003E.CComPtrNtv_003CIMetadataManager_003E_002ERelease(&cComPtrNtv_003CIMetadataManager_003E);
return num;
}
public unsafe int GetDontSyncHatedContent(ref bool fDontSyncHatedContent)
{
//IL_0040: Expected I, but got I8
CComPtrMgd_003CIEndpointHost_003E spEndpointHost = m_spEndpointHost;
if (spEndpointHost.p == null)
{
_003CModule_003E._ZuneShipAssert(1002u, 554u);
return -2147418113;
}
bool flag = false;
IEndpointHost* p = spEndpointHost.p;
int num = ((delegate* unmanaged[Cdecl, Cdecl]<IntPtr, EEndpointHostSetting, bool*, int>)(*(ulong*)(*(long*)p + 248)))((nint)p, EEndpointHostSetting.eEndpointHostSettingDontSyncHatedContent, &flag);
if (num >= 0)
{
fDontSyncHatedContent = flag;
}
return num;
}
public unsafe int SetDontSyncHatedContent([MarshalAs(UnmanagedType.U1)] bool fDontSyncHatedContent)
{
//IL_0036: Expected I, but got I8
IEndpointHost* p = m_spEndpointHost.p;
if (p == null)
{
_003CModule_003E._ZuneShipAssert(1002u, 575u);
return -2147418113;
}
return ((delegate* unmanaged[Cdecl, Cdecl]<IntPtr, EEndpointHostSetting, byte, int>)(*(ulong*)(*(long*)p + 280)))((nint)p, EEndpointHostSetting.eEndpointHostSettingDontSyncHatedContent, fDontSyncHatedContent ? ((byte)1) : ((byte)0));
}
public unsafe int GenerateSnapshot([MarshalAs(UnmanagedType.U1)] bool expandSyncAll, ref SyncRulesView syncRulesView)
{
//IL_0027: Expected I, but got I8
//IL_0061: Expected I, but got I8
CComPtrMgd_003CIEndpointHost_003E spEndpointHost = m_spEndpointHost;
if (spEndpointHost.p == null)
{
_003CModule_003E._ZuneShipAssert(1002u, 592u);
return -2147418113;
}
ISyncRulesView* ptr = null;
EEndpointHostProperty propId = (expandSyncAll ? EEndpointHostProperty.eEndpointHostPropertyExpandedRulesView : EEndpointHostProperty.eEndpointHostPropertyCollapsedRulesView);
int num = _003CModule_003E.GetInterfaceProperty_003Cstruct_0020IEndpointHost_002Cenum_0020EEndpointHostProperty_002Cstruct_0020ISyncRulesView_003E(spEndpointHost.p, propId, &ptr);
if (num >= 0)
{
syncRulesView = new SyncRulesView(ptr);
}
if (0L != (nint)ptr)
{
ISyncRulesView* intPtr = ptr;
((delegate* unmanaged[Cdecl, Cdecl]<IntPtr, uint>)(*(ulong*)(*(long*)intPtr + 16)))((nint)intPtr);
}
return num;
}
private unsafe int AddInternal(int[] rgIds, EMediaTypes mediaType, EDeviceSyncRuleType ruleType, [MarshalAs(UnmanagedType.U1)] bool fAutoSelectRuleType)
{
int num = 0;
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 22, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
int num2 = 0;
if (0 < (nint)rgIds.LongLength)
{
while (num >= 0)
{
num = _003CModule_003E.ZuneLibraryExports_002EAddDeviceSyncRule(ruleType, fAutoSelectRuleType, m_iDeviceID, mediaType, rgIds[num2]);
if (num < 0)
{
break;
}
num2++;
if (num2 >= (nint)rgIds.LongLength)
{
break;
}
}
}
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_d(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 23, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids), num);
}
return num;
}
private unsafe int RemoveInternal(int[] rgIds, EMediaTypes mediaType, EDeviceSyncRuleType ruleType, [MarshalAs(UnmanagedType.U1)] bool fDeviceFolderIds)
{
int num = 0;
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 28, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids));
}
if (rgIds != null)
{
fixed (int* ptr = &rgIds[0])
{
try
{
int* ptr2 = ptr;
num = _003CModule_003E.ZuneLibraryExports_002EDeleteDeviceSyncRules(ruleType, m_iDeviceID, mediaType, ptr2, rgIds.Length, fDeviceFolderIds);
}
catch
{
//try-fault
ptr = null;
throw;
}
}
}
if (_003CModule_003E.WPP_GLOBAL_Control != System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.WPP_GLOBAL_Control) && ((uint)(*(int*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 60uL)) & 0x200u) != 0 && (uint)(*(byte*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 57uL)) >= 5u)
{
_003CModule_003E.WPP_SF_d(*(ulong*)((ulong)(nint)_003CModule_003E.WPP_GLOBAL_Control + 48uL), 29, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E._003FA0x09bc4a52_002EWPP_SyncRulesAPI_cpp_Traceguids), num);
}
return num;
}
protected virtual void Dispose([MarshalAs(UnmanagedType.U1)] bool P_0)
{
if (P_0)
{
try
{
_007ESyncRules();
}
finally
{
((IDisposable)m_spEndpointHost).Dispose();
}
}
else
{
Finalize();
}
}
public sealed override void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
}