private void InitForSelf() { _currentSongProvider = OrchestrionPlugin.PluginInterface.GetIpcProvider <int>("Orch.CurrentSong"); _currentSongProvider.RegisterFunc(CurrentSongFunc); _playSongProvider = OrchestrionPlugin.PluginInterface.GetIpcProvider <int, bool>("Orch.PlaySong"); _playSongProvider.RegisterFunc(PlaySongFunc); _songInfoProvider = OrchestrionPlugin.PluginInterface.GetIpcProvider <int, Song>("Orch.SongInfo"); _songInfoProvider.RegisterFunc(songId => SongList.SongExists(songId) ? SongList.GetSong(songId) : default);
public PenumbraIpc(DalamudPluginInterface pi, IPenumbraApi api) { Api = api; try { ProviderApiVersion = pi.GetIpcProvider <int>(LabelProviderApiVersion); ProviderApiVersion.RegisterFunc(() => api.ApiVersion); } catch (Exception e) { PluginLog.Error($"Error registering IPC provider for {LabelProviderApiVersion}:\n{e}"); } try { ProviderRedrawName = pi.GetIpcProvider <string, int, object>(LabelProviderRedrawName); ProviderRedrawName.RegisterAction((s, i) => api.RedrawObject(s, CheckRedrawType(i))); } catch (Exception e) { PluginLog.Error($"Error registering IPC provider for {LabelProviderRedrawName}:\n{e}"); } try { ProviderRedrawObject = pi.GetIpcProvider <GameObject, int, object>(LabelProviderRedrawObject); ProviderRedrawObject.RegisterAction((o, i) => api.RedrawObject(o, CheckRedrawType(i))); } catch (Exception e) { PluginLog.Error($"Error registering IPC provider for {LabelProviderRedrawObject}:\n{e}"); } try { ProviderRedrawAll = pi.GetIpcProvider <int, object>(LabelProviderRedrawAll); ProviderRedrawAll.RegisterAction(i => api.RedrawAll(CheckRedrawType(i))); } catch (Exception e) { PluginLog.Error($"Error registering IPC provider for {LabelProviderRedrawAll}:\n{e}"); } try { ProviderResolveDefault = pi.GetIpcProvider <string, string>(LabelProviderResolveDefault); ProviderResolveDefault.RegisterFunc(api.ResolvePath); } catch (Exception e) { PluginLog.Error($"Error registering IPC provider for {LabelProviderResolveDefault}:\n{e}"); } try { ProviderResolveCharacter = pi.GetIpcProvider <string, string, string>(LabelProviderResolveCharacter); ProviderResolveCharacter.RegisterFunc(api.ResolvePath); } catch (Exception e) { PluginLog.Error($"Error registering IPC provider for {LabelProviderResolveCharacter}:\n{e}"); } try { ProviderChangedItemTooltip = pi.GetIpcProvider <ChangedItemType, uint, object>(LabelProviderChangedItemTooltip); api.ChangedItemTooltip += OnTooltip; } catch (Exception e) { PluginLog.Error($"Error registering IPC provider for {LabelProviderChangedItemTooltip}:\n{e}"); } try { ProviderChangedItemClick = pi.GetIpcProvider <MouseButton, ChangedItemType, uint, object>(LabelProviderChangedItemClick); api.ChangedItemClicked += OnClick; } catch (Exception e) { PluginLog.Error($"Error registering IPC provider for {LabelProviderChangedItemClick}:\n{e}"); } try { ProviderGetChangedItems = pi.GetIpcProvider <string, IReadOnlyDictionary <string, object?> >(LabelProviderGetChangedItems); ProviderGetChangedItems.RegisterFunc(api.GetChangedItemsForCollection); } catch (Exception e) { PluginLog.Error($"Error registering IPC provider for {LabelProviderChangedItemClick}:\n{e}"); } }