<?xml version="1.0" encoding="UTF-8"?>
<!--

Documentation for LCL (Lazarus Component Library) and LazUtils (Lazarus 
Utilities) are published under the Creative Commons Attribution-ShareAlike 4.0 
International public license.

https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt
https://gitlab.com/freepascal.org/lazarus/lazarus/-/blob/main/docs/cc-by-sa-4-0.txt

Copyright (c) 1997-2025, by the Lazarus Development Team.

-->
<fpdoc-descriptions>
<package name="lcl">

<!--
====================================================================
lazdeviceapis
====================================================================
-->

<module name="lazdeviceapis">
<short>
LCL APIs for accessing hardware sensors (such as Accelerometer, GPS, etc) and 
integrated elements of the system (such as Calendar, Contacts, etc).
</short>
<descr>
</descr>

<!-- class Visibility: default -->
<element name="TLazAccelerometer">
<short>Represents the hardware accelerometer.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazAccelerometer.xaxis">
<short>The last value measured for the X axis of the accelerometer.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazAccelerometer.yaxis">
<short>The last value measured for the Y axis of the accelerometer.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazAccelerometer.zaxis">
<short>The last value measured for the Z axis of the accelerometer.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- procedure Visibility: public -->
<element name="TLazAccelerometer.StartReadingAccelerometerData">
<short>Starts monitoring the accelerometer sensor.</short>
<descr><p>After calling this method, the accelerometer sensor will be 
monitored.
If the accelerometer native API sends an event for value changes, then the 
event
OnSensorChanged will be called on every change and before calling it the 
xaxis,
yaxis and zaxis properties of the Accelerometer global object will be updated 
to
reflect the last value read. If the native accelerometer API requires 
pooling, then
the accelerometer state will be pooled at a rate not faster then once per 
millisecond.</p>
<p>Remember to call StopReadingAccelerometerData when the accelerometer is no
longer needed, because this may save energy in some mobile platforms.</p>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- procedure Visibility: public -->
<element name="TLazAccelerometer.StopReadingAccelerometerData">
<short>Stops monitoring the accelerometer sensor.</short>
<descr><p>After calling this method OnSensorChange will no longer be called 
and
the xaxis, yaxis and zaxis properties will remain stopped at the last value 
read</p>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- procedure Visibility: public -->
<element name="TLazAccelerometer.OnSensorChanged">
<short>
Called when the accelerometer value changes or is updated from the sensor.
</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- enumeration type Visibility: default -->
<element name="TLazDeviceMessageKind">
<short>Indicates the type of message (for example: SMS, MMS, EMail).</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- enumeration value Visibility: default -->
<element name="TLazDeviceMessageKind.dmkSMS">
<short>Indicates that the message is a SMS.</short>
</element>

<!-- enumeration value Visibility: default -->
<element name="TLazDeviceMessageKind.dmkMMS">
<short>Indicates that the message is a MMS.</short>
</element>

<!-- enumeration value Visibility: default -->
<element name="TLazDeviceMessageKind.dmkEMail">
<short>Indicates that the message is a E-Mail.</short>
</element>

<!-- class Visibility: default -->
<element name="TLazDeviceMessage">
<short>Represents a message.</short>
<descr>Don't create instances of this class directly. Instead use 
Messaging.CreateMessage().
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.bccAddress">
<short>
A copy should be sent to addresses specified here, but these addresses will 
not appear in the message.
</short>
<descr>The BCC field of E-Mails, also known as hidden copy
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.Body">
<short>The main text of the message.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.ReplyToAddress">
<short>
Might indicate an address different from SourceAddress so that replies are 
sent to a different address then the message sender.
</short>
<descr>By default this value is empty, which means that the source and 
reply-to addresses match.
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.ccAddress">
<short>A copy should be sent to addresses specified here.</short>
<descr>The CC field in E-Mails
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.destinationAddress">
<short>The destination(s) of the message.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.isRead">
<short>Indicates if the user has already read the message.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.messageId">
<short>Reserved field.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.messageType">
<short>The type of the message.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.sourceAddress">
<short>The address from which the message was sent.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.Subject">
<short>The title or subject of the message.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.Time">
<short>The time when the message was sent.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazDeviceMessage.validityPeriod">
<short>The period of time for which the message is valid.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- enumeration type Visibility: default -->
<element name="TLazMessagingStatus">
<short>Indicates the current stage of a message sending operation.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- enumeration value Visibility: default -->
<element name="TLazMessagingStatus.mssSentSuccessfully">
<short>Indicates that the message was sent successfully to the server.</short>
</element>

<!-- enumeration value Visibility: default -->
<element name="TLazMessagingStatus.mssSendingGeneralError">
<short>
The message was not successfully sent to the server, but no particular reason 
for the failure is known.
</short>
</element>

<!-- enumeration value Visibility: default -->
<element name="TLazMessagingStatus.mssRadioOff">
<short>The hardware device which would send the message is off. The user 
should activate
his Radio Network (CDMA, GMS or another one) or activate his WiFi (for EMail 
only).</short>
</element>

<!-- enumeration value Visibility: default -->
<element name="TLazMessagingStatus.mssNoService">
<short>The hardware device which would send the message could not connect to 
the network
because there is no signal here.</short>
</element>

<!-- enumeration value Visibility: default -->
<element name="TLazMessagingStatus.mssReceivedSuccessfully">
<short>The message was successfully received by the destination.</short>
</element>

<!-- enumeration value Visibility: default -->
<element name="TLazMessagingStatus.mssReceivingGeneralError">
<short>
The message was not successfully received by the target, but no particular 
reason for the failure is known.
</short>
</element>

<!-- procedure type Visibility: default -->
<element name="TOnMessagingStatus">
<short>
A procedural type to receive the events of the status of sending a message.
</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- argument Visibility: default -->
<element name="TOnMessagingStatus.AMessage">
<short></short>
</element>

<!-- argument Visibility: default -->
<element name="TOnMessagingStatus.AStatus">
<short></short>
</element>

<!-- class Visibility: default -->
<element name="TLazMessaging">
<short>A class which manages messages.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- procedure Visibility: public -->
<element name="TLazMessaging.SendMessage">
<short>Sends a message to the target specified on it.</short>
<descr><p>The message to be sent should be created with the method 
CreateMessage
from this same class and later released with FreeMessage. The same message 
can be
sent multiple times, but ideally it should not be edited after sending the 
first
time to avoid confusion when obtaining the message object back in the status
callback.</p>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- argument Visibility: default -->
<element name="TLazMessaging.SendMessage.AMsg">
<short></short>
</element>

<!-- procedure Visibility: public -->
<element name="TLazMessaging.CreateMessage">
<short>Creates a new message which can be sent with SendMessage.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- argument Visibility: default -->
<element name="TLazMessaging.CreateMessage.Result">
<short></short>
</element>

<!-- procedure Visibility: public -->
<element name="TLazMessaging.FreeMessage">
<short>Removes a message created with CreateMessage.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- argument Visibility: default -->
<element name="TLazMessaging.FreeMessage.AMessage">
<short></short>
</element>

<!-- property Visibility: public -->
<element name="TLazMessaging.OnMessagingStatus">
<short></short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- enumeration type Visibility: default -->
<element name="TLazPositionMethod">
<short>A list of possible positioning methods.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- enumeration value Visibility: default -->
<element name="TLazPositionMethod.pmGPS">
<short>The GPS positioning method.</short>
</element>

<!-- enumeration value Visibility: default -->
<element name="TLazPositionMethod.pmNetwork">
<short>Detects the position via the network connection.</short>
</element>

<!-- class Visibility: default -->
<element name="TLazPositionInfo">
<short>Represents the hardware GPS device.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazPositionInfo.IsPositionDataAvailable">
<short>
Indicates if position info was read in the life of this program.
</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazPositionInfo.accuracy">
<short>The horizontal accuracy of the position in meters.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazPositionInfo.altitude">
<short>
Altitude in meters in relation to the sea level using the World Geodetic 
System 1984 (WGS84) datum.
</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazPositionInfo.altitudeAccuracy">
<short>
The vertical accuracy of the position in meters, or zero if not available.
</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazPositionInfo.latitude">
<short>
Latitude in degrees using the World Geodetic System 1984 (WGS84) datum.
</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazPositionInfo.longitude">
<short>
Longitude in degrees using the World Geodetic System 1984 (WGS84) datum
In meters / second.
</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: public -->
<element name="TLazPositionInfo.timeStamp">
<short>The time when the latest location was established.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- procedure Visibility: public -->
<element name="TLazPositionInfo.RequestPositionInfo">
<short>Requests the latest position using the given method.</short>
<descr>This call is asynchronous and the data will only be available when the 
OnPositionRetrieved callback is called.
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- argument Visibility: default -->
<element name="TLazPositionInfo.RequestPositionInfo.AMethod">
<short></short>
</element>

<!-- property Visibility: public -->
<element name="TLazPositionInfo.OnPositionRetrieved">
<short>Called asynchronously when the position is read.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- class Visibility: default -->
<element name="TLazDevice">
<short>
Represents the device itself in a general way and hardware elements which 
don't have a exclusive object to represent them.
</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>

<!-- function Visibility: public -->
<element name="TLazDevice.Vibrate">
<short>Vibrates the device, if it has hardware support for this.</short>
<descr>Vibrates the device, if it has hardware support for this. The duration 
of the vibration is given in milliseconds.
</descr>
<seealso>
</seealso>
</element>

<!-- property Visibility: public -->
<element name="TLazDevice.Manufacturer">
<short>A string with the name of the manufacturer of the device.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- property Visibility: public -->
<element name="TLazDevice.Model">
<short>The model of the device.</short>
<descr>The model of the device. Sometimes the model includes the manufacturer 
too.
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: default -->
<element name="Accelerometer">
<short>A global object representing the accelerometer of the device.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: default -->
<element name="Messaging">
<short>A global object to manage message.</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: default -->
<element name="PositionInfo">
<short>
A global object which represents the positioning sensor of the device.
</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

<!-- variable Visibility: default -->
<element name="Device">
<short>
A global object which represents the device hardware in a general way, except 
for those elements which already have their own object, like Screen, 
PositionInfo, Accelerometer, etc.
</short>
<descr>
</descr>
<seealso>
</seealso>
</element>

</module> <!-- lazdeviceapis -->

</package>
</fpdoc-descriptions>
