using System;
namespace Plugin.NFC
{
#region Event delegates
public delegate void NdefMessageReceivedEventHandler(ITagInfo tagInfo);
public delegate void NdefMessagePublishedEventHandler(ITagInfo tagInfo);
public delegate void TagDiscoveredEventHandler(ITagInfo tagInfo, bool format);
public delegate void OnNfcStatusChangedEventHandler(bool isEnabled);
public delegate void TagListeningStatusChangedEventHandler(bool isListening);
#endregion
///
/// Main interface for NFC
///
public interface INFC
{
///
/// Checks if NFC Feature is available
///
bool IsAvailable { get; }
///
/// Checks if NFC Feature is enabled
///
bool IsEnabled { get; }
///
/// Checks if writing mode is supported
///
bool IsWritingTagSupported { get; }
///
/// NFC Configuration
///
NfcConfiguration Configuration { get; }
///
/// Set Nfc configuration
///
///
void SetConfiguration(NfcConfiguration configuration);
///
/// Starts tags detection
///
void StartListening();
///
/// Stops tags detection
///
void StopListening();
///
/// Starts tag publishing (writing or formatting)
///
/// Format tag
void StartPublishing(bool clearMessage = false);
///
/// Stops tag publishing
///
void StopPublishing();
///
/// Publish or write a message on a tag
///
/// see
/// make tag read-only
void PublishMessage(ITagInfo tagInfo, bool makeReadOnly = false);
///
/// Format tag
///
/// see
void ClearMessage(ITagInfo tagInfo);
///
/// Event raised when tag is connected
///
event EventHandler OnTagConnected;
///
/// Event raised when tag is disconnected
///
event EventHandler OnTagDisconnected;
///
/// Event raised when ndef message is received
///
event NdefMessageReceivedEventHandler OnMessageReceived;
///
/// Event raised when a tag is discovered (Editing)
///
event TagDiscoveredEventHandler OnTagDiscovered;
///
/// Event raised when ndef message has been published
///
event NdefMessagePublishedEventHandler OnMessagePublished;
///
/// Event raised when iOS NFC reading session is cancelled
///
event EventHandler OniOSReadingSessionCancelled;
///
/// Event raised when NFC status changes
///
event OnNfcStatusChangedEventHandler OnNfcStatusChanged;
///
/// Event raised when NFC listener status changes
///
event TagListeningStatusChangedEventHandler OnTagListeningStatusChanged;
}
}