Skip to content

Commit

Permalink
[src] Import xml docs for members, part 1. (#22210)
Browse files Browse the repository at this point in the history
This has to be done in parts, because the Roslyn importer runs out of
memory otherwise.

Which also means I have no idea how many parts there will end up being.

Partial fix for #17399.
  • Loading branch information
rolfbjarne authored Feb 24, 2025
1 parent 12d38e2 commit 4f13e06
Show file tree
Hide file tree
Showing 161 changed files with 6,527 additions and 3,032 deletions.
66 changes: 66 additions & 0 deletions docs/api/AudioToolbox/AudioQueue.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<Documentation>
<Docs DocId="P:AudioToolbox.AudioQueue.CurrentLevelMeter">
<summary>Current Level meters, one per channel in the range zero (minimum) to one (maximum).</summary>
<value>Array of level meters, one per audio channel.</value>
<remarks>
<para>
To use this property, make sure that you set the <see cref="P:AudioToolbox.AudioQueue.EnableLevelMetering" /> property on the queue.
</para>
<para>
Use the <see cref="P:AudioToolbox.AudioQueue.CurrentLevelMeterDB" /> if you want to get the values in decibels.
</para>
<example>
<code lang="c#"><![CDATA[
class MyInputQueue : InputAudioQueue {
public MyQueueInput (AudioStreamBasicDescription desc) : base (desc)
{
inputQueue.EnableLevelMetering = true;
}
protected virtual void OnInputCompleted (IntPtr audioQueueBuffer,
AudioTimeStamp timeStamp,
AudioStreamPacketDescription [] packetData)
{
var levels = CurrentLevelMeterDB;
for (int channel = 0; channel < levels.Count; channel.Length)
Console.WriteLine ("Channel {0} Average Power: {1} Peak Power: {2}",
channel, levels [channel].AveragePower, levels [channel].PeakPower);
}
}
}]]></code>
</example>
</remarks>
</Docs>
<Docs DocId="P:AudioToolbox.AudioQueue.CurrentLevelMeterDB">
<summary>Current Level meters, one per channel in decibels.</summary>
<value>Array of level meters, one per audio channel.</value>
<remarks>
<para>
To use this property, make sure that you set the <see cref="P:AudioToolbox.AudioQueue.EnableLevelMetering" /> property on the queue.
</para>
<para>
Use the <see cref="P:AudioToolbox.AudioQueue.CurrentLevelMeter" /> if you want to get the values normalized to the range zero (minimum) to one (maximum).
</para>
<example>
<code lang="c#"><![CDATA[
class MyInputQueue : InputAudioQueue {
public MyQueueInput (AudioStreamBasicDescription desc) : base (desc)
{
inputQueue.EnableLevelMetering = true;
}
protected virtual void OnInputCompleted (IntPtr audioQueueBuffer,
AudioTimeStamp timeStamp,
AudioStreamPacketDescription [] packetData)
{
var levels = CurrentLevelMeterDB;
for (int channel = 0; channel < levels.Count; channel.Length)
Console.WriteLine ("Channel {0} Average Power: {1} Peak Power: {2}",
channel, levels [channel].AveragePower, levels [channel].PeakPower);
}
}
}]]></code>
</example>
</remarks>
</Docs>
</Documentation>
54 changes: 54 additions & 0 deletions docs/api/AudioUnit/AUAudioUnit.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<Documentation>
<Docs DocId="P:AudioUnit.AUAudioUnit.AudioComponentRegistrationsChangedNotification">
<summary>Notification constant for AudioComponentRegistrationsChanged</summary>
<value>NSString constant, should be used as a token to NSNotificationCenter.</value>
<remarks>
<para id="tool-remark">This constant can be used with the <see cref="T:Foundation.NSNotificationCenter" /> to register a listener for this notification. This is an NSString instead of a string, because these values can be used as tokens in some native libraries instead of being used purely for their actual string content. The 'notification' parameter to the callback contains extra information that is specific to the notification type.</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
// Lambda style
NSNotificationCenter.DefaultCenter.AddObserver (
AUAudioUnit.AudioComponentRegistrationsChangedNotification, (notification) => {Console.WriteLine ("Received the notification AUAudioUnit", notification); }
// Method style
void Callback (NSNotification notification)
{
Console.WriteLine ("Received a notification AUAudioUnit", notification);
}
void Setup ()
{
NSNotificationCenter.DefaultCenter.AddObserver (AUAudioUnit.AudioComponentRegistrationsChangedNotification, Callback);
}
]]></code>
</example>
</remarks>
</Docs>
<Docs DocId="P:AudioUnit.AUAudioUnit.AudioComponentInstanceInvalidationNotification">
<summary>Notification constant for AudioComponentInstanceInvalidation</summary>
<value>NSString constant, should be used as a token to NSNotificationCenter.</value>
<remarks>
<para id="tool-remark">This constant can be used with the <see cref="T:Foundation.NSNotificationCenter" /> to register a listener for this notification. This is an NSString instead of a string, because these values can be used as tokens in some native libraries instead of being used purely for their actual string content. The 'notification' parameter to the callback contains extra information that is specific to the notification type.</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
// Lambda style
NSNotificationCenter.DefaultCenter.AddObserver (
AUAudioUnit.AudioComponentInstanceInvalidationNotification, (notification) => {Console.WriteLine ("Received the notification AUAudioUnit", notification); }
// Method style
void Callback (NSNotification notification)
{
Console.WriteLine ("Received a notification AUAudioUnit", notification);
}
void Setup ()
{
NSNotificationCenter.DefaultCenter.AddObserver (AUAudioUnit.AudioComponentInstanceInvalidationNotification, Callback);
}
]]></code>
</example>
</remarks>
</Docs>
</Documentation>
62 changes: 62 additions & 0 deletions docs/api/AudioUnit/AudioComponentDescription.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<Documentation>
<Docs DocId="F:AudioUnit.AudioComponentDescription.ComponentSubType">
<summary>Audio Unit component subtype, depending on the <see cref="F:AudioUnit.AudioComponentDescription.ComponentSubType" /> value you should use one of the values from <see cref="T:AudioUnit.AudioTypeOutput" />, <see cref="T:AudioUnit.AudioTypeMusicDevice" />, <see cref="T:AudioUnit.AudioTypeConverter" />, <see cref="T:AudioUnit.AudioTypeEffect" />, <see cref="T:AudioUnit.AudioTypeMixer" />, <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=T:AudioUnit.AudioTypePanner,&amp;scope=Xamarin" title="T:AudioUnit.AudioTypePanner,">T:AudioUnit.AudioTypePanner,</a></format> <see cref="T:AudioUnit.AudioTypeGenerator" /></summary>
<remarks>
<para>Audio Unit component subtype, depending on the <see cref="F:AudioUnit.AudioComponentDescription.ComponentType" /> you should use one of the values from <see cref="T:AudioUnit.AudioTypeOutput" />, <see cref="T:AudioUnit.AudioTypeMusicDevice" />, <see cref="T:AudioUnit.AudioTypeConverter" />, <see cref="T:AudioUnit.AudioTypeEffect" />, <see cref="T:AudioUnit.AudioTypeMixer" />, <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=T:AudioUnit.AudioTypePanner,&amp;scope=Xamarin" title="T:AudioUnit.AudioTypePanner,">T:AudioUnit.AudioTypePanner,</a></format> <see cref="T:AudioUnit.AudioTypeGenerator" />.</para>
<para />
<para>Since this is an integer, and the values on those enumerations are strongly typed, you typically need to cast.   The following example shows this:</para>
<para />
<para />
<example>
<code lang="csharp lang-csharp"><![CDATA[var processingGraph = new AUGraph ();
int samplerNode, ioNode;
var musicSampler = new AudioComponentDescription () {
ComponentManufacturer = AudioComponentManufacturerType.Apple,
ComponentType = AudioComponentType.MusicDevice,
ComponentSubType = (int)AudioTypeMusicDevice.Sampler
};
samplerNode = processingGraph.AddNode (musicSampler);
var remoteOutput = new AudioComponentDescription () {
ComponentManufacturer = AudioComponentManufacturerType.Apple,
ComponentType = AudioComponentType.Output,
ComponentSubType = (int)AudioTypeOutput.Remote
};
ioNode = processingGraph.AddNode (remoteOutput);
processingGraph.Open ();]]></code>
</example>.</remarks>
</Docs>
<Docs DocId="F:AudioUnit.AudioComponentDescription.ComponentSubType">
<summary>Audio Unit component subtype, depending on the <see cref="F:AudioUnit.AudioComponentDescription.ComponentSubType" /> value you should use one of the values from <see cref="T:AudioUnit.AudioTypeOutput" />, <see cref="T:AudioUnit.AudioTypeMusicDevice" />, <see cref="T:AudioUnit.AudioTypeConverter" />, <see cref="T:AudioUnit.AudioTypeEffect" />, <see cref="T:AudioUnit.AudioTypeMixer" />, <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=T:AudioUnit.AudioTypePanner,&amp;scope=Xamarin" title="T:AudioUnit.AudioTypePanner,">T:AudioUnit.AudioTypePanner,</a></format> <see cref="T:AudioUnit.AudioTypeGenerator" /></summary>
<remarks>
<para>Audio Unit component subtype, depending on the <see cref="F:AudioUnit.AudioComponentDescription.ComponentType" /> you should use one of the values from <see cref="T:AudioUnit.AudioTypeOutput" />, <see cref="T:AudioUnit.AudioTypeMusicDevice" />, <see cref="T:AudioUnit.AudioTypeConverter" />, <see cref="T:AudioUnit.AudioTypeEffect" />, <see cref="T:AudioUnit.AudioTypeMixer" />, <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=T:AudioUnit.AudioTypePanner,&amp;scope=Xamarin" title="T:AudioUnit.AudioTypePanner,">T:AudioUnit.AudioTypePanner,</a></format> <see cref="T:AudioUnit.AudioTypeGenerator" />.</para>
<para />
<para>Since this is an integer, and the values on those enumerations are strongly typed, you typically need to cast.   The following example shows this:</para>
<para />
<para />
<example>
<code lang="csharp lang-csharp"><![CDATA[var processingGraph = new AUGraph ();
int samplerNode, ioNode;
var musicSampler = new AudioComponentDescription () {
ComponentManufacturer = AudioComponentManufacturerType.Apple,
ComponentType = AudioComponentType.MusicDevice,
ComponentSubType = (int)AudioTypeMusicDevice.Sampler
};
samplerNode = processingGraph.AddNode (musicSampler);
var remoteOutput = new AudioComponentDescription () {
ComponentManufacturer = AudioComponentManufacturerType.Apple,
ComponentType = AudioComponentType.Output,
ComponentSubType = (int)AudioTypeOutput.Remote
};
ioNode = processingGraph.AddNode (remoteOutput);
processingGraph.Open ();]]></code>
</example>.</remarks>
</Docs>
</Documentation>
41 changes: 41 additions & 0 deletions docs/api/CoreLocation/CLPlacemark.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<Documentation>
<Docs DocId="P:CoreLocation.CLPlacemark.AddressDictionary">
<summary>Developers should not use this deprecated property. Developers should use 'CLPlacemark' properties to access data.</summary>
<value>To be added.</value>
<remarks>
<para>Available keys are:</para>
<list type="bullet">
<item>
<term>
<see cref="P:AddressBook.ABPersonAddressKey.Street" />
</term>
</item>
<item>
<term>
<see cref="P:AddressBook.ABPersonAddressKey.City" />
</term>
</item>
<item>
<term>
<see cref="P:AddressBook.ABPersonAddressKey.State" />
</term>
</item>
<item>
<term>
<see cref="P:AddressBook.ABPersonAddressKey.Zip" />
</term>
</item>
<item>
<term>
<see cref="P:AddressBook.ABPersonAddressKey.Country" />
</term>
</item>
<item>
<term>
<see cref="P:AddressBook.ABPersonAddressKey.CountryCode" />
</term>
</item>
</list>
</remarks>
</Docs>
</Documentation>
132 changes: 132 additions & 0 deletions docs/api/CoreMidi/Midi.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
<Documentation>
<Docs DocId="P:CoreMidi.Midi.NetworkNotificationContactsDidChange">
<summary>Notification raised when the MIDI network has changed.</summary>
<value>
</value>
<remarks>
<para id="tool-remark">This constant can be used with the <see cref="T:Foundation.NSNotificationCenter" /> to register a listener for this notification. This is an NSString instead of a string, because these values can be used as tokens in some native libraries instead of being used purely for their actual string content. The 'notification' parameter to the callback contains extra information that is specific to the notification type.</para>
<para id="tool-remark">If you want to subscribe to this notification, you can use the convenience <see cref="T:MediaPlayer.MPMediaLibrary.Notifications" />.<see cref="M:CoreMidi.Midi.Notifications.ObserveNetworkNotificationContactsDidChange(Foundation.NSObject,System.EventHandler{Foundation.NSNotificationEventArgs})" /> method which offers strongly typed access to the parameters of the notification.</para>
<para>The following example shows how to use the strongly typed Notifications class, to take the guesswork out of the available properties in the notification:</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
//
// Lambda style
//
// listening
notification = Midi.Notifications.ObserveNetworkNotificationContactsDidChange ((sender, args) => {
/* Access strongly typed args */
Console.WriteLine ("Notification: {0}", args.Notification);
});
// To stop listening:
notification.Dispose ();
//
// Method style
//
NSObject notification;
void Callback (object sender, Foundation.NSNotificationEventArgs args)
{
// Access strongly typed args
Console.WriteLine ("Notification: {0}", args.Notification);
}
void Setup ()
{
notification = Midi.Notifications.ObserveNetworkNotificationContactsDidChange (Callback);
}
void Teardown ()
{
notification.Dispose ();
}]]></code>
</example>
<para>The following example shows how to use the notification with the DefaultCenter API:</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
// Lambda style
NSNotificationCenter.DefaultCenter.AddObserver (
Midi.NetworkNotificationContactsDidChange, (notification) => {Console.WriteLine ("Received the notification Midi", notification); }
// Method style
void Callback (NSNotification notification)
{
Console.WriteLine ("Received a notification Midi", notification);
}
void Setup ()
{
NSNotificationCenter.DefaultCenter.AddObserver (Midi.NetworkNotificationContactsDidChange, Callback);
}
]]></code>
</example>
</remarks>
</Docs>
<Docs DocId="P:CoreMidi.Midi.NetworkNotificationSessionDidChange">
<summary>Notification raised when the MIDI session has changed</summary>
<value>
</value>
<remarks>
<para id="tool-remark">This constant can be used with the <see cref="T:Foundation.NSNotificationCenter" /> to register a listener for this notification. This is an NSString instead of a string, because these values can be used as tokens in some native libraries instead of being used purely for their actual string content. The 'notification' parameter to the callback contains extra information that is specific to the notification type.</para>
<para id="tool-remark">If you want to subscribe to this notification, you can use the convenience <see cref="T:MediaPlayer.MPMediaLibrary.Notifications" />.<see cref="M:CoreMidi.Midi.Notifications.ObserveNetworkNotificationSessionDidChange(Foundation.NSObject,System.EventHandler{Foundation.NSNotificationEventArgs})" /> method which offers strongly typed access to the parameters of the notification.</para>
<para>The following example shows how to use the strongly typed Notifications class, to take the guesswork out of the available properties in the notification:</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
//
// Lambda style
//
// listening
notification = Midi.Notifications.ObserveNetworkNotificationSessionDidChange ((sender, args) => {
/* Access strongly typed args */
Console.WriteLine ("Notification: {0}", args.Notification);
});
// To stop listening:
notification.Dispose ();
//
// Method style
//
NSObject notification;
void Callback (object sender, Foundation.NSNotificationEventArgs args)
{
// Access strongly typed args
Console.WriteLine ("Notification: {0}", args.Notification);
}
void Setup ()
{
notification = Midi.Notifications.ObserveNetworkNotificationSessionDidChange (Callback);
}
void Teardown ()
{
notification.Dispose ();
}]]></code>
</example>
<para>The following example shows how to use the notification with the DefaultCenter API:</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
// Lambda style
NSNotificationCenter.DefaultCenter.AddObserver (
Midi.NetworkNotificationSessionDidChange, (notification) => {Console.WriteLine ("Received the notification Midi", notification); }
// Method style
void Callback (NSNotification notification)
{
Console.WriteLine ("Received a notification Midi", notification);
}
void Setup ()
{
NSNotificationCenter.DefaultCenter.AddObserver (Midi.NetworkNotificationSessionDidChange, Callback);
}
]]></code>
</example>
</remarks>
</Docs>
</Documentation>
11 changes: 11 additions & 0 deletions docs/api/MultipeerConnectivity/MCAdvertiserAssistant.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<Documentation>
<Docs DocId="P:MultipeerConnectivity.MCAdvertiserAssistant.DiscoveryInfo">
<summary>A small dictionary of data available to browsers.</summary>
<value>This will contain the data passed in to the <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=C:MultipeerConnectivity.MCAdvertiserAssistant(string,Foundation.NSDictionary, MultipeerConnectivity.MCSession)&amp;scope=Xamarin" title="C:MultipeerConnectivity.MCAdvertiserAssistant(string,Foundation.NSDictionary, MultipeerConnectivity.MCSession)">C:MultipeerConnectivity.MCAdvertiserAssistant(string,Foundation.NSDictionary, MultipeerConnectivity.MCSession)</a></format> constructor.</value>
<remarks>
<para>The total size of keys and data in this dictionary should be less than ~400 bytes so that it can fit into a single Bluetooth data packet.</para>
<para>The dictionary should map <see langword="string" />s to <see langword="string" />s. Each key-value pair must be no more than 255 bytes with the equals sign inserted between them (i.e., <c>System.Text.ASCIIEncoding.Unicode.GetByteCount(String.Format("{0}={1}",key,value)) &lt;= 255 </c>). Keys may not contain equals signs.</para>
<para>The dictionary is advertised as a Bonjour TXT record (see <format type="text/html"><a href="https://tools.ietf.org/html/rfc6763">RFC 6763, Section 6</a></format>).</para>
</remarks>
</Docs>
</Documentation>
Loading

7 comments on commit 4f13e06

@vs-mobiletools-engineering-service2

This comment was marked as outdated.

@vs-mobiletools-engineering-service2

This comment was marked as outdated.

@vs-mobiletools-engineering-service2

This comment was marked as outdated.

@vs-mobiletools-engineering-service2

This comment was marked as outdated.

@vs-mobiletools-engineering-service2

This comment was marked as outdated.

@vs-mobiletools-engineering-service2

This comment was marked as outdated.

@vs-mobiletools-engineering-service2

This comment was marked as outdated.

Please sign in to comment.