summaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
authorphilippe colliot <philippe.colliot@mpsa.com>2014-04-14 09:41:15 +0200
committerphilippe colliot <philippe.colliot@mpsa.com>2014-04-14 09:41:15 +0200
commit210f87288e237539d43eac3333364f86c855fa0b (patch)
tree980824e3ba38b4ebf6eac42ea0b08775bfa4702d /api
downloadpoi-service-210f87288e237539d43eac3333364f86c855fa0b.tar.gz
first commit after renaming the repository
Diffstat (limited to 'api')
-rw-r--r--api/.gitignore11
-rw-r--r--api/franca/CommonTypes.fidl34
-rw-r--r--api/franca/POIService/POIServiceContentAccess.fidl87
-rw-r--r--api/franca/POIService/POIServiceContentAccessModule.fidl95
-rw-r--r--api/franca/POIService/POIServiceSearch.fidl283
-rw-r--r--api/franca/POIService/POIServiceTypes.fidl259
-rw-r--r--api/map-viewer/constants.xsl65
-rw-r--r--api/map-viewer/enum.xsl32
-rwxr-xr-xapi/map-viewer/genivi-mapviewer-configuration.xml194
-rw-r--r--api/map-viewer/genivi-mapviewer-constants.xml87
-rwxr-xr-xapi/map-viewer/genivi-mapviewer-mapviewercontrol.xml1507
-rwxr-xr-xapi/map-viewer/genivi-mapviewer-session.xml104
-rwxr-xr-xapi/map-viewer/introspect.xsd147
-rw-r--r--api/map-viewer/introspect.xsl183
-rw-r--r--api/navigation-core/constants.xsl65
-rw-r--r--api/navigation-core/enum.xsl32
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-configuration.xml194
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-constants.xml212
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-guidance.xml373
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-locationinput.xml531
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-mapmatchedposition.xml379
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-routing.xml830
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-session.xml104
-rwxr-xr-xapi/navigation-core/introspect.xsd147
-rw-r--r--api/navigation-core/introspect.xsl183
-rw-r--r--api/poi-service/constants.xsl65
-rw-r--r--api/poi-service/enum.xsl32
-rw-r--r--api/poi-service/genivi-poiservice-constants.xml70
-rw-r--r--api/poi-service/genivi-poiservice-contentaccessmodule.xml215
-rw-r--r--api/poi-service/genivi-poiservice-poicontentaccess.xml206
-rw-r--r--api/poi-service/genivi-poiservice-poisearch.xml609
-rwxr-xr-xapi/poi-service/introspect.xsd147
-rw-r--r--api/poi-service/introspect.xsl183
33 files changed, 7665 insertions, 0 deletions
diff --git a/api/.gitignore b/api/.gitignore
new file mode 100644
index 0000000..5b5f285
--- /dev/null
+++ b/api/.gitignore
@@ -0,0 +1,11 @@
+#folder used for downloading external APIs
+# enhanced-position-service/
+.project
+
+
+
+
+
+
+
+
diff --git a/api/franca/CommonTypes.fidl b/api/franca/CommonTypes.fidl
new file mode 100644
index 0000000..de36738
--- /dev/null
+++ b/api/franca/CommonTypes.fidl
@@ -0,0 +1,34 @@
+package org.genivi.lbs.CommonTypes
+
+typeCollection CommonTypes {
+ version {
+ major 0
+ minor 1
+ }
+ <** @description : A template to generate a dbus 'v'.**>
+ union variant_t {
+ UInt32 element1
+ Float element2
+ }
+ <** @description: version.**>
+ struct version_t {
+ <** @description : when the major changes, then backward compatibility with previous releases is not granted.**>
+ UInt16 ^major
+ <** @description : when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added).**>
+ UInt16 ^minor
+ <** @description : when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications).**>
+ UInt16 ^micro
+ <** @description : release date (e.g. 21-06-2011).**>
+ String date
+ }
+ <** @description: 3D geocoordinate.**>
+ struct geoCoordinate3D_t
+ {
+ <** @description : latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250.**>
+ Double latitude
+ <** @description : longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250.**>
+ Double longitude
+ <** @description : altitude above the sea level of the current position in meters.**>
+ Int32 altitude
+ }
+ } \ No newline at end of file
diff --git a/api/franca/POIService/POIServiceContentAccess.fidl b/api/franca/POIService/POIServiceContentAccess.fidl
new file mode 100644
index 0000000..6e5275f
--- /dev/null
+++ b/api/franca/POIService/POIServiceContentAccess.fidl
@@ -0,0 +1,87 @@
+package org.genivi.lbs.POIService
+
+import org.genivi.lbs.LBScommonTypes.* from "../CommonTypes.fidl"
+import org.genivi.lbs.POIServiceTypes.* from "POIServiceTypes.fidl"
+
+
+<** @description : This interface offers a set of common methods for Content Access Modules (CAM). The CAM provide and update POI and categories information from remote sources to the POIService modules.**>
+interface POIContentAccess {
+ version {
+ major 1
+ minor 0
+ }
+ <** @description : Register to the POI provider module
+ When the CAM registers, it provides a name and then get a unique id. This id must be used everytime the CAM communicates with the POI service component.
+ After the registration is done, the CAM can start to update POI categories and POI attributes as well as registers POI categories to search for.**>
+ method RegisterContentAccessModule {
+ in {
+ <** @description : The name of the CAM.**>
+ String moduleName
+ }
+
+ out {
+ <** @description : Content access module unique id as known by the POI service component.**>
+ UInt8 camId
+ }
+
+ }
+ <** @description : Remove CAM from POI provider module.**>
+ method UnRegisterContentAccessModule {
+ in {
+ <** @description : Content access module unique id as known by the POI service component.**>
+ UInt8 camId
+ }
+ }
+ <** @description : Register to the POI provider module the categories you can search for POI.
+ The categories could be predifined one or customized ones. In order to register a customized category, you might need to create it before and add it to the POI service component.**>
+ method RegisterPoiCategories {
+ in {
+ <** @description : Content access module unique id as known by the POI service component.**>
+ UInt8 camId
+ <** @description : array[unique_id].
+ List of POI categories to register.
+ unique_id = Unique category id.
+ **>
+ UInt16[] poiCategories
+ }
+ }
+ <** @description : Update categories in the POI service component. It could be a predifined or a customed one.
+ The CAM provides for each categories the list of attributes (mandatories like name or optional) it wants to update.
+ Depending on the local database write policy, the CAM might only be able to update customized attributes for a category and not the predefined ones so some update could be rejected.**>
+ method UpdateCategories {
+ in {
+ <** @description : Content access module unique id as known by the POI service component.**>
+ UInt8 camId
+ <** @description : array[unique_id, attributes, sortOptions].**>
+ POIServiceTypes.CAMCategoryUpdate_t[] poiCategories
+ }
+ }
+ <** @description : Add new categories to the POI service component.
+ The CAM provides for each categories the name, the parent categories, the top level attribute, the list of attributes, the icons, ... .**>
+ method AddCategories {
+ in {
+ <** @description : Content access module unique id as known by the POI service component.**>
+ UInt8 camId
+ <** @description : List of details for all the POI categories.**>
+ POIServiceTypes.CAMCategory_t[] poiCategories
+ }
+ out {
+ <**
+ @description : array of unique POI categories as registered by the POI service component.
+ Note: A POI category is a unique ID
+ **>
+ UInt16[] poiCategoriesId
+ }
+ }
+ <** @description : Remove categories from the POI service component. It could be a predifined or a customed one.
+ Depending on the local database write policy, the CAM might only not be able to remove some categories.**>
+ method RemoveCategories {
+ in {
+ <** @description : Content access module unique id as known by the POI service component.**>
+ UInt8 camId
+ <** @description : array[unique_id].
+ List of POI categories to remove.**>
+ UInt16[] poiCategories
+ }
+ }
+} \ No newline at end of file
diff --git a/api/franca/POIService/POIServiceContentAccessModule.fidl b/api/franca/POIService/POIServiceContentAccessModule.fidl
new file mode 100644
index 0000000..dd6da9d
--- /dev/null
+++ b/api/franca/POIService/POIServiceContentAccessModule.fidl
@@ -0,0 +1,95 @@
+package org.genivi.lbs.POIService
+
+import org.genivi.lbs.CommonTypes.* from "../CommonTypes.fidl"
+import org.genivi.lbs.POIServiceTypes.* from "POIServiceTypes.fidl"
+
+
+<** @description : This interface offers methods that implement the POI search functionality of a navigation system.**>
+interface POIContentAccessModule {
+ version {
+ major 1
+ minor 0
+ }
+ <** @description : This method returns the API version implemented by the content access module.**>
+ method GetVersion {
+ out {
+ <** @description: .**>
+ CommonTypes.version_t ^version
+ }
+ }
+ <** @description : Set the current language set for the search by poi provider module.
+ The language defines the poi and categories name and details language. If the language is not supported, the default details will be returned in the native language.**>
+ method SetLanguage {
+ in {
+ <** @description : The language to be used.**>
+ String languageCode
+ <** @description : The country specific variant for the language to be used.**>
+ String countryCode
+ }
+ }
+
+ <** @description : This method is sent by the POI service component to inform all the CAM that a new POI search was started.
+ It provides all the relevant search parameters. Of course the CAM will only be aware of the search if it registers one of the search categories.**>
+ method PoiSearchStarted {
+ in {
+ <** @description : poi search unique handle. It must be used by the CAM to send the list of results to the component.**>
+ UInt8 poiSearchHandle
+ <** @description : max size of the results list.**>
+ UInt16 maxSize
+ <** @description: struct(lat,lon,alt).**>
+ CommonTypes.geoCoordinate3D_t location
+ <** @description: array[struct(id,radius)].**>
+ POIServiceTypes.categoryRadius_t[] poiCategories
+ <** @description : array[struct(name, poiCategory, type, value, operator, mandatory)].**>
+ POIServiceTypes.attributeDetails_t[] poiAttributes
+ <** @description : contains the name of the poi that is searched. It could be a partial name or an empty string.**>
+ String inputString
+ <** @description : enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... )
+ If more than one category was defined for this search, the sort criteria should be compliant with all categories.**>
+ UInt16 sortOption
+ }
+ }
+
+ <** @description : This method cancels the search for the current id.**>
+ method PoiSearchCanceled {
+ in {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ }
+ }
+
+ <** @description : This method provides the poi results list found by the CAM.
+ As the POI unique id is managed by the POI component, the CAM only provides the POI name, the category and coordinates as well as all the relevant detailed information.**>
+ method ResultListRequested {
+ in {
+ <** @description : Content access module unique id as known by the POI service component.**>
+ UInt8 camId
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ <** @description : List of attributes name to retrieve. This is optional and the list could be empty.**>
+ String[] attributes
+ }
+ out {
+ <** @description : enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... ).**>
+ UInt16 statusValue
+ <** @description : Number of items of the results list.**>
+ UInt16 resultListSize
+ <** @description : array[struct(source_id, name, category, location, distance, attributes)].**>
+ POIServiceTypes.poiCAMDetails_t[] resultList
+ }
+ }
+
+ <** @description : This method retrieves the details associated to one or more POI.
+ It contains the name, the parent categories, the list of attributes, the icons, ... .**>
+ method PoiDetailsRequested {
+ in {
+ <** @description : array[unique_poi_id].**>
+ UInt32[] source_id
+ }
+ out {
+ <** @description : array[(details, categories, attributes)] .**>
+ POIServiceTypes.searchResultDetails_t[] results
+ }
+ }
+
+ } \ No newline at end of file
diff --git a/api/franca/POIService/POIServiceSearch.fidl b/api/franca/POIService/POIServiceSearch.fidl
new file mode 100644
index 0000000..cad3e75
--- /dev/null
+++ b/api/franca/POIService/POIServiceSearch.fidl
@@ -0,0 +1,283 @@
+package org.genivi.lbs.POIService
+
+import org.genivi.lbs.CommonTypes.* from "../CommonTypes.fidl"
+import org.genivi.lbs.POIServiceTypes.* from "POIServiceTypes.fidl"
+
+
+<** @description : This interface offers methods that implement the POI search functionality of a navigation system.**>
+interface POISearch {
+ version {
+ major 1
+ minor 0
+ }
+ <** @description : This method returns the API version implemented by the content access module.**>
+ method GetVersion {
+ out {
+ <** @description: .**>
+ CommonTypes.version_t ^version
+ }
+ }
+
+ <** @description : Get the current language set for the search.
+ The language defines the poi and categories name and details language. If the language is not supported, the default details will be returned in the native language. **>
+ method GetLanguage {
+ out {
+ <** @description : The language.**>
+ String languageCode
+ <** @description : The country specific variant for the language.**>
+ String countryCode
+ }
+ }
+
+ <** @description : Set the language.
+ The language defines the poi and categories name and details language. If the language is not supported, the default details will be returned in the native language.**>
+ method SetLanguage {
+ in {
+ <** @description : The language to be used.**>
+ String languageCode
+ <** @description : The country specific variant for the language to be used.**>
+ String countryCode
+ }
+ }
+
+ <** @description : This method allows the application to validate that POI categories are supported by the POI component and the Content access modules.**>
+ method ValidateCategories {
+ in {
+ <** @description : list of categories enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)
+ Note: A POI category is a unique ID. It could be a predifined category or a custom one defined by a POI plug-in.**>
+ UInt16[] categories
+ }
+ out {
+ <** @description : List of status for all the POI categories.**>
+ POIServiceTypes.poiCategoryAndStatus_t[] results
+ }
+ }
+
+ <** @description : This method retrieves the list od POI categories available (pre-defined and custom).**>
+ method GetAvailableCategories {
+ out {
+ <** @description : List of categories (id, name and top_level).**>
+ POIServiceTypes.poiCategoryAndName_t[] categories
+ }
+ }
+
+ <** @description : Get the root category id. That would be ALL_CATEGORIES.**>
+ method GetRootCategory {
+ out {
+ <** @description : The root category is a top level one by design.**>
+ UInt16 category
+ }
+ }
+
+ <** @description : Get the children categories id and type (top level) from the a parent unique id.**>
+ method GetChildrenCategories {
+ in {
+ <** @description : unique category id.**>
+ UInt16 category
+ }
+ out {
+ <** @description : List of categories (id and top_level).**>
+ POIServiceTypes.poiCategoryAndLevel_t[] categories
+ }
+ }
+
+ <** @description : Get the parent categories id and type (top level) from the a unique id.**>
+ method GetParentCategories {
+ in {
+ <** @description : unique category id.**>
+ UInt16 category
+ }
+ out {
+ <** @description : List of categories (id and top_level).**>
+ POIServiceTypes.poiCategoryAndLevel_t[] categories
+ }
+ }
+
+ <** @description : GetCategoriesDetails = This method retrieves the details associated to one or more POI categories.
+ It contains the name, the parent categories, the top level attribute, the list of attributes, the icons, ... .**>
+ method GetCategoriesDetails {
+ in {
+ <** @description : list of categories enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)
+ Note: A POI category is a unique ID. It could be a predefined category or a custom one defined by a POI plug-in. **>
+ UInt16[] categories
+ }
+ out {
+ <** @description : List of details for all the POI categories.**>
+ POIServiceTypes.category_t[] results
+ }
+ }
+
+ <** @description : This method creates a new search input and retrieves a handle .**>
+ method CreatePoiSearchHandle {
+ out {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ }
+ }
+
+ <** @description : This method deletes a search input and its associated resources.**>
+ method DeletePoiSearchHandle {
+ in {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ }
+ }
+
+ <** @description : This method sets the location to start the search around.
+ If a route handle was defined before, it will be replaced by this location.**>
+ method SetCenter {
+ in {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ <** @description : location of the center.**>
+ CommonTypes.geoCoordinate3D_t location
+ }
+ }
+
+ <** @description : This method allows to start a POI search along a guided route.
+ The route handle must be valid or the POI search will failed.
+ If a search location was defined before, it will be replaced by the route.**>
+ method SetRouteHandle {
+ in {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ <** @description : session handle.**>
+ UInt8 sessionHandle
+ <** @description : route handle.**>
+ UInt8 routeHandle
+ <** @description : (optional) Distance from vehicle (in meters) from where to start the search along. 0 or invalid distance means start from vehicle.**>
+ UInt16 startSearchOffset
+ <** @description : (optional) Length of the route (in meters) from where to start the search along. 0 or invalid lenght means end is the destination.**>
+ UInt16 endSearchOffset
+ }
+ }
+
+ <** @description : This method sets the POI categories for the current search input and the corresponding result-lists for the current session .**>
+ method SetCategories {
+ in {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ <** @description: array[struct(id,radius)].**>
+ POIServiceTypes.categoryRadius_t[] poiCategories
+ }
+ }
+ <** @description : This method set POI attributes (optional) for the current search input and the corresponding result-lists for the current session
+ An attribute is attached to a category.**>
+ method SetAttributes {
+ in {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ <** @description : array[struct(name, poiCategory, type, value, operator, mandatory)].**>
+ POIServiceTypes.attributeDetails_t[] poiAttributes
+ }
+ }
+
+ <** @description : This method sends the search input for the search handle.
+ The search will start with the either the location or the route handle.
+ If no positon or route handle were configured, the search will use the vehicle position are center location.**>
+ method StartPoiSearch {
+ in {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ <** @description : contains the name of the poi that is searched. It could be a partial name or an empty string.**>
+ String inputString
+ <** @description : enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... )
+ If more than one category was defined for this search, the sort criteria should be compliant with all categories.**>
+ UInt16 sortOption
+ }
+ }
+
+ <** @description : This method cancels the search for the current session.**>
+ method CancelPoiSearch {
+ in {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ }
+ }
+
+ <** @description : This method starts to check for POI aound vehicle according to the criteria defined with the unique handle.
+ By default, it will search for POI around vehicle position with default radius defined for each categories.
+ If a route handle was defined, it will search along the route with default categorie's radius.**>
+ method StartPoiProximityAlert {
+ in {
+ <** @description : poi alert unique handle.**>
+ UInt8 poiSearchHandle
+ <** @description : contains the name of the poi that is searched. It could be a partial name or an empty string.**>
+ String inputString
+ <** @description : enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... )
+ If more than one category was defined for this search, the sort criteria should be compliant with all categories.**>
+ UInt16 sortOption
+ }
+ }
+
+ <** @description : This method cancels the search for the current session.**>
+ method CancelPoiProximityAlert {
+ in {
+ <** @description : poi alert unique handle.**>
+ UInt8 poiSearchHandle
+ }
+ }
+
+ <** @description : This method gets the poi result list (e.g. after a Search/Scroll call) .**>
+ method RequestResultList {
+ in {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ <** @description : starting offset of the newly requested list elements. If invalid (more that total list for instance) it starts from the begining.**>
+ UInt16 offset
+ <** @description : maximum number of elements that should be returned as result.**>
+ UInt16 maxWindowSize
+ <** @description : List of attributes name to retrieve. This is optional and the list could be empty.**>
+ String[] attributes
+ }
+ out {
+ <** @description : enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... ).**>
+ UInt16 statusValue
+ <** @description : Number of items of the results list.**>
+ UInt16 resultListSize
+ <** @description : array[unique_id, distance, route_status, attributes].**>
+ POIServiceTypes.searchResult_t[] resultListWindow
+ }
+ }
+
+ <** @description : This method retrieves the details associated to one or more POI.
+ It contains the name, the parent categories, the list of attributes, the icons, ... ..**>
+ method GetPoiDetails {
+ in {
+ <** @description : list of poi.**>
+ UInt32[] id
+ }
+ out {
+ <** @description : array[details, categories, attributes].**>
+ POIServiceTypes.searchResultDetails_t[] results
+ }
+ }
+
+ <** @description : This signal indicates that one or more POI categories were added, updated or removed.**>
+ broadcast CategoriesUpdated {
+ out {
+ <** @description : List of POI categories modified or added.**>
+ POIServiceTypes.poiCategoryAndReason_t[] poiCategories
+ }
+ }
+
+ <** @description : This signal updates the search or proximity alert status of the specified handle.**>
+ broadcast PoiStatus {
+ out {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ <** @description : enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... ).**>
+ UInt16 statusValue
+ }
+ }
+
+ <** @description : This signal updates in the poi results list.**>
+ broadcast ResultListChanged {
+ out {
+ <** @description : poi search unique handle.**>
+ UInt8 poiSearchHandle
+ <** @description : Number of items of the results list.**>
+ UInt16 resultListSize
+ }
+ }
+} \ No newline at end of file
diff --git a/api/franca/POIService/POIServiceTypes.fidl b/api/franca/POIService/POIServiceTypes.fidl
new file mode 100644
index 0000000..28d1f97
--- /dev/null
+++ b/api/franca/POIService/POIServiceTypes.fidl
@@ -0,0 +1,259 @@
+package org.genivi.lbs.POIServiceTypes
+
+import org.genivi.lbs.CommonTypes.* from "../CommonTypes.fidl"
+
+typeCollection POIServiceTypes {
+ version {
+ major 0
+ minor 1
+ }
+
+
+ <** @description:**>
+ struct details_t {
+ <** @description : list of parent categories unique id.**>
+ UInt16[] parents_id
+ <** @description : visual icons set.**>
+ CommonTypes.variant_t icons
+ <** @description : name.**>
+ String name
+ <** @description : short category description (optional).**>
+ String short_desc
+ <** @description : media associated (html web site, audio, video, ...) (optional).**>
+ CommonTypes.variant_t media
+ }
+
+ <** @description:**>
+ struct operator_t {
+ <** @description : enum(INVALID,MORE_THAN,LESS_THAN,EQUAL, ....).**>
+ UInt16 operator_id
+ <** @description : attribute operator name.**>
+ String operator_name
+ }
+
+
+ <** @description:**>
+ struct categoryAttribute_t {
+ <** @description : attribute unique name.**>
+ String name
+ <** @description : enum(INVALID,STRING,INTEGER,COORDINATES ...).**>
+ UInt16 type
+ <** @description:**>
+ operator_t[] operators
+ }
+
+
+ <** @description:**>
+ struct categorySortOption_t {
+ <** @description : enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... ).**>
+ UInt16 id
+ <** @description : name to be displayed by application.**>
+ String name
+ }
+
+
+ <** @description:**>
+ struct CAMCategory_t {
+ <** @description : struct(list of parents_id, icons, name, short_desc, media).**>
+ details_t details
+ <** @description : array[struct(name, type, array[struct(operator_id, operator_name)])].**>
+ categoryAttribute_t[] attributes
+ <** @description : array[struct(id, name)].**>
+ categorySortOption_t[] sortOptions
+ }
+
+
+ <** @description:**>
+ struct CAMCategoryUpdate_t {
+ <** @description : enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...). Note: A POI category is a unique ID. It could be a predefined category or a custom one defined by a POI plug-in **>
+ UInt16 id
+ <** @description : array[struct(name, type, array[struct(operator_id, operator_name)])].**>
+ categoryAttribute_t[] attributes
+ <** @description : array[struct(id, name)].**>
+ categorySortOption_t[] sortOptions
+ }
+
+
+
+ <** @description:**>
+ struct poiAttribute_t
+ {
+ <** @description:attribute unique name (see data model)**>
+ String name
+ <** @description:enum(INVALID,STRING,INTEGER,COORDINATES ...)**>
+ UInt16 type
+ <** @description:The value depends on the attribute specifications and type**>
+ CommonTypes.variant_t value
+ }
+
+
+
+ <** @description:**>
+ struct categoryRadius_t
+ {
+ <** @description : enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...). Note: A POI category is a unique ID. It could be a predefined category or a custom one defined by a POI plug-in **>
+ UInt16 id
+ <** @description : activation or search radius around the position (in 10 meters) for the category. If value is 0 (zero), the default radius (defined for a category) is applied.**>
+ UInt32 radius
+ }
+
+
+ <** @description:**>
+ struct poiDetails_t
+ {
+ <** @description:POI id**>
+ UInt32 id
+ <** @description:POI name**>
+ String name
+ <** @description:latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250**>
+ Double latitude
+ <** @description:longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250**>
+ Double longitude
+ <** @description:altitude above the sea level of the current position in meters**>
+ Int32 altitude
+ }
+
+
+ <** @description:**>
+ struct searchResultDetails_t
+ {
+ <** @description: struct(id,name,latitude,longitude,altitude).**>
+ poiDetails_t details
+ <** @description: array[unique_id].**>
+ UInt16[] categories
+ <** @description: array[struct(name,type,value)].**>
+ poiAttribute_t[] attributes
+ }
+
+ <** @description:**>
+ struct searchResult_t
+ {
+ <** @description:POI id**>
+ UInt32 id
+ <** @description:distance in meters to poi from center of the search or from vehicle if search along**>
+ UInt32 distance
+ <** @description:enum(OFF_ROUTE,ON_ROUTE,INSIDE_CORRIDOR, ... )**>
+ UInt16 route_status
+ <** @description:List of attributes requested. It could be empty**>
+ poiAttribute_t[] attributes
+ }
+
+
+ <** @description:**>
+ struct poiCAMDetails_t
+ {
+ <** @description:POI unique id as known by the content access module. This id will be used by POI service to request POI details.**>
+ UInt32 source_id
+ <** @description:POI name.**>
+ String name
+ <** @description:POI category unique id.**>
+ UInt16 category
+ <** @description:POI location.**>
+ CommonTypes.geoCoordinate3D_t location
+ <** @description:distance in meters to poi from center of the search.**>
+ UInt16 distance
+ <** @description:List of attributes requested. It could be empty.**>
+ poiAttribute_t[] attributes
+ }
+
+
+ <** @description:**>
+ struct attributeDetails_t
+ {
+ <** @description : attribute unique name (see data model).**>
+ String name
+ <** @description : enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...). Note: A POI category is a unique ID. It could be a predefined category or a custom one defined by a POI plug-in **>
+ UInt16 poiCategory
+ <** @description : enum(INVALID,STRING,INTEGER,COORDINATES ...).**>
+ UInt16 type
+ <** @description : value or partial value. The value depends on the attribute specifications and type.**>
+ CommonTypes.variant_t value
+ <** @description : enum(INVALID,MORE_THAN,LESS_THAN,EQUAL, ....).**>
+ UInt16 oper
+ <** @description : true if the attribute is mandatory for the search and false for optional.**>
+ Boolean mandatory
+ }
+
+ <** @description:**>
+ struct categoryDetails_t
+ {
+ <** @description : Category unique id.**>
+ UInt16 unique_id
+ <** @description : list of parent categories unique id.**>
+ UInt16[] parents_id
+ <** @description : visual icons set.**>
+ CommonTypes.variant_t icons
+ <** @description : name.**>
+ String name
+ <** @description : true if the category is a pre-defined one (top level), false for customized categories created by plug-in.**>
+ Boolean top_level
+ <** @description : short category description (optional).**>
+ String description
+ <** @description : media associated (html web site, audio, video, ...) (optional).**>
+ CommonTypes.variant_t media
+ }
+
+ <** @description:**>
+ struct category_t
+ {
+ <** @description : struct(unique_id, list of parents_id, icons, name, top_level, short_desc, media).**>
+ categoryDetails_t details
+ <** @description : array[struct(name, type, array[struct(operator_id, operator_name)].**>
+ categoryAttribute_t[] attributes
+ <** @description : array[struct(id, name)].**>
+ categorySortOption_t[] sortOptions
+ }
+
+ <** @description:**>
+ struct poiCategoryAndLevel_t
+ {
+ <** @description : Category unique id.**>
+ UInt16 unique_id
+ <** @description : true if the category is a pre-defined one (top level), false for customized categories created by plug-in.**>
+ Boolean top_level
+ }
+
+ <** @description:**>
+ struct poiCategoryAndName_t
+ {
+ <** @description : Category unique id.**>
+ UInt16 unique_id
+ <** @description : name.**>
+ String name
+ <** @description : true if the category is a pre-defined one (top level), false for customized categories created by plug-in.**>
+ Boolean top_level
+ }
+
+ <** @description:**>
+ struct poiCategoryAndReason_t
+ {
+ <** @description : Category unique id.**>
+ UInt16 unique_id
+ <** @description : enum(ADDED,REMOVED,ATTR_ADDED,ATTR_MODIFIED,ATTR_REMOVED, ... ) .**>
+ UInt16 reason
+ }
+ <** @description:**>
+ struct poiCategoryAndStatus_t
+ {
+ <** @description : Category unique id.**>
+ UInt16 unique_id
+ <** @description : true if the category is available .**>
+ UInt16 status
+ }
+
+ <** @description:**>
+ struct poiAddedDetails_t
+ {
+ <** @description:POI name**>
+ String name
+ <** @description:latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250**>
+ Double latitude
+ <** @description:longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250**>
+ Double longitude
+ <** @description:altitude above the sea level of the current position in meters**>
+ Int32 altitude
+ <** @description: array[struct(name,type,value)].**>
+ poiAttribute_t[] attributes
+ }
+
+}
diff --git a/api/map-viewer/constants.xsl b/api/map-viewer/constants.xsl
new file mode 100644
index 0000000..7616ebb
--- /dev/null
+++ b/api/map-viewer/constants.xsl
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+ <!-- 09.3.2011 Marco Residori: First Draft -->
+ <!-- 14.3.2011 Marco Residori: Improved layout -->
+ <xsl:output method="xml" version="1.0" encoding="iso-8859-15" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes"/>
+ <xsl:template match="/">
+ <html>
+ <!-- head -->
+ <head>
+ <title>DBUS Introspection Data</title>
+ <style type="text/css">
+ body { color: black; background-color: white }
+ h1 { font-family: sans-serif }
+ ul { list-style-type: none; margin-bottom: 10px }
+ li { font-family: sans-serif }
+ .keyword { font-style: italic }
+ .id { font-style: italic; font-size:8pt; }
+ .title { font-style: italic; color: blue }
+ .line { font-style: italic; font-size:8pt; color: green}
+ .version { font-family: monospace }
+ </style>
+ </head>
+ <!-- body -->
+ <body>
+ <!-- definitions -->
+ <xsl:apply-templates select="constants"/>
+ </body>
+ </html>
+ </xsl:template>
+ <xsl:template match="constants">
+ <div class="constants">
+ <h1>
+ <span class="keyword">constants</span>
+ <xsl:text> </xsl:text>
+ <span class="title">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="version">version</span>
+ <xsl:text> </xsl:text>
+ <span class="version">
+ <xsl:value-of select="version"/>
+ </span>
+ </h1>
+ <xsl:apply-templates select="doc"/>
+ <xsl:for-each select="id">
+ <hr/>
+ <li>
+ <xsl:apply-templates select="doc"/>
+ <span class="id"><xsl:value-of select="@name"/> = <xsl:value-of select="@value"/></span>
+ </li>
+ </xsl:for-each>
+ </div>
+ </xsl:template>
+ <xsl:template match="doc">
+ <li>
+ <span class="line">
+ <xsl:for-each select="line">
+ <xsl:value-of select="."/>
+ <xsl:element name="br"/>
+ </xsl:for-each>
+ </span>
+ </li>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/api/map-viewer/enum.xsl b/api/map-viewer/enum.xsl
new file mode 100644
index 0000000..4c093e8
--- /dev/null
+++ b/api/map-viewer/enum.xsl
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ************************************************************************
+* Component Name: Navit POC
+* Author: Martin Schaller <martin.schaller@it-schaller.de>
+*
+* Copyright (C) 2012, GENIVI Alliance, Inc.
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License version 2 as
+* published by the Free Software Foundation.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+************************************************************************ -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+ <xsl:output method="text" encoding="iso-8859-15"/>
+ <xsl:template match="constants">
+ <xsl:variable name="constants" select="translate(@name,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
+/* This is an automatically generated file, do not edit */
+
+enum GENIVI_<xsl:value-of select="$constants"/>_Constants {<xsl:for-each select="id">
+ GENIVI_<xsl:value-of select="$constants"/>_<xsl:value-of select="translate(@name,'-','_')"/> = <xsl:value-of select="@value"/>,</xsl:for-each>
+};
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/api/map-viewer/genivi-mapviewer-configuration.xml b/api/map-viewer/genivi-mapviewer-configuration.xml
new file mode 100755
index 0000000..6939312
--- /dev/null
+++ b/api/map-viewer/genivi-mapviewer-configuration.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/mapviewer" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.mapviewer.Configuration">
+ <version>2.0.0 (07-06-2013)</version>
+ <doc>
+ <line>Configuration = This interface offers functions to set and retrieve configuration parameters</line>
+ </doc>
+ <method name="GetVersion">
+ <doc>
+ <line>GetVersion = This method returns the API version implemented by the server application</line>
+ </doc>
+ <arg name="version" type="(qqqs)" direction="out">
+ <doc>
+ <line>version = struct(major,minor,micro,date)</line>
+ <line>major = when the major changes, then backward compatibility with previous releases is not granted</line>
+ <line>minor = when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added)</line>
+ <line>micro = when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications)</line>
+ <line>date = release date (e.g. 21-06-2011)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetUnitsOfMeasurement">
+ <doc>
+ <line>SetUnitsOfMeasurement = This method sets the units of measurement</line>
+ </doc>
+ <arg name="unitsOfMeasurementList" type="a{qv}" direction="in">
+ <doc>
+ <line>unitsOfMeasurementList = array[unitsOfMeasurement]</line>
+ <line>unitsOfMeasurement = tuple (key,value)</line>
+ <line>key = enum(INVALID,LENGTH, ... )</line>
+ <line>key = LENGTH, value = value of type 'q', that represents an enum(INVALID,METER,MILE, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetUnitsOfMeasurement">
+ <doc>
+ <line>GetUnitsOfMeasurement = This method retrieves the units of measurement</line>
+ </doc>
+ <arg name="unitsOfMeasurementList" type="a{qv}" direction="out">
+ <doc>
+ <line>unitsOfMeasurementList = array[unitsOfMeasurement]</line>
+ <line>unitsOfMeasurement = tuple (key,value)</line>
+ <line>key = enum(INVALID,LENGTH, ... )</line>
+ <line>key = LENGTH, value = value of type 'q', that represents an enum(INVALID,METER,MILE, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedUnitsOfMeasurement">
+ <doc>
+ <line>GetSupportedUnitsOfMeasurement = This method retrieves the supported units of measurement</line>
+ </doc>
+ <arg name="unitsOfMeasurementList" type="a{qv}" direction="out">
+ <doc>
+ <line>unitsOfMeasurementList = array[unitsOfMeasurement]</line>
+ <line>unitsOfMeasurement = dictionary[key,value]</line>
+ <line>dictionary = array of tuples (key,value)</line>
+ <line>key = enum(INVALID,LENGTH, ... )</line>
+ <line>key = LENGTH, value = value of type 'aq'; 'q' is an enum(INVALID,METER,MILE, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetTimeFormat">
+ <doc>
+ <line>SetTimeFormat = This method sets the time format</line>
+ </doc>
+ <arg name="timeFormat" type="q" direction="in">
+ <doc>
+ <line>timeFormat = enum(INVALID,12H,24H, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetTimeFormat">
+ <doc>
+ <line>GetTimeFormat = This method retrieves the time format</line>
+ </doc>
+ <arg name="timeFormat" type="q" direction="out">
+ <doc>
+ <line>timeFormat = enum(INVALID,12H,24H, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedTimeFormats">
+ <doc>
+ <line>GetSupportedTimeFormats = This method retrieves the supported time formats</line>
+ </doc>
+ <arg name="timeFormatList" type="aq" direction="out">
+ <doc>
+ <line>timeFormatList = array[timeFormat]</line>
+ <line>timeFormat = enum(INVALID,12H,24H, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetCoordinatesFormat">
+ <doc>
+ <line>SetCoordinatesFormat = This method sets the coordinates format</line>
+ </doc>
+ <arg name="coordinatesFormat" type="q" direction="in">
+ <doc>
+ <line>coordinatesFormat = enum(INVALID,DEGREES,MINUTES,SECONDS, ... )</line>
+ <line>DEGREES format = d.dº</line>
+ <line>MINUTES format = dºm.m'</line>
+ <line>SECONDS format = dºm's"</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetCoordinatesFormat">
+ <doc>
+ <line>GetCoordinatesFormat = This method retrieves the coordinates format</line>
+ </doc>
+ <arg name="coordinatesFormat" type="q" direction="out">
+ <doc>
+ <line>coordinatesFormat = enum(INVALID,DEGREES,MINUTES,SECONDS, ... )</line>
+ <line>DEGREES format = d.dº</line>
+ <line>MINUTES format = dºm.m'</line>
+ <line>SECONDS format = dºm's"</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedCoordinatesFormats">
+ <doc>
+ <line>GetSupportedCoordinatesFormats = This method retrieves the supported coordinates formats</line>
+ </doc>
+ <arg name="coordinatesFormatList" type="aq" direction="out">
+ <doc>
+ <line>coordinatesFormatList = array[coordinatesFormat]</line>
+ <line>coordinatesFormat = enum(INVALID,DEGREES,MINUTES,SECONDS, ... )</line>
+ <line>DEGREES format = d.dº</line>
+ <line>MINUTES format = dºm.m'</line>
+ <line>SECONDS format = dºm's"</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetLocale">
+ <doc>
+ <line>SetLocale = This method sets the current language and country</line>
+ </doc>
+ <arg name="language" type="s" direction="in">
+ <doc>
+ <line>language = ISO 639‐3 language code (lower case)</line>
+ </doc>
+ </arg>
+ <arg name="country" type="s" direction="in">
+ <doc>
+ <line>country = ISO 3166‐1 alpha 3 country code (upper case)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetLocale">
+ <doc>
+ <line>GetLocale = This method retrieves the current language and country</line>
+ </doc>
+ <arg name="language" type="s" direction="out">
+ <doc>
+ <line>language = ISO 639‐3 language code (lower case)</line>
+ </doc>
+ </arg>
+ <arg name="country" type="s" direction="out">
+ <doc>
+ <line>country = ISO 3166‐1 alpha 3 country code (upper case)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedLocales">
+ <doc>
+ <line>GetSupportedLocales = This method retrieves the supported languages and countries</line>
+ </doc>
+ <arg name="localeList" type="a(ss)" direction="out">
+ <doc>
+ <line>localeList = array[struct(language,country)]</line>
+ <line>language = ISO 639-3 language code (lower case)</line>
+ <line>country = ISO 3166-1 alpha 3 country code (upper case)</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="ConfigurationChanged">
+ <doc>
+ <line>ConfigurationChanged = This signal is sent to the clients when one or more configuration settings changes</line>
+ </doc>
+ <arg name="changedSettings" type="aq">
+ <doc>
+ <line>changedSettings = array[setting]</line>
+ <line>setting = enum(INVALID,UNITS_OF_MEASUREMENT,LOCALE,TIME_FORMAT,COORDINATES_FORMAT, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ </interface>
+</node>
diff --git a/api/map-viewer/genivi-mapviewer-constants.xml b/api/map-viewer/genivi-mapviewer-constants.xml
new file mode 100644
index 0000000..cc4515e
--- /dev/null
+++ b/api/map-viewer/genivi-mapviewer-constants.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="constants.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<constants name="MapViewer">
+ <version>3.0.0-alpha (07-06-2013)</version>
+ <doc>
+ <line>This document defines the constants used in the MapViewer APIs</line>
+ </doc>
+
+ <id name="INVALID" value="0x0000" />
+ <id name="ALL" value="0xffff" />
+
+ <id name="AVAILABLE" value="0x0001" />
+ <id name="NOT_AVAILABLE" value="0x0002" />
+
+ <id name="TIME_FORMAT" value="0x0003" />
+ <id name="12H" value="0x0004" />
+ <id name="24H" value="0x0005" />
+
+ <id name="COORDINATES_FORMAT" value="0x0006" />
+ <id name="DEGREES" value="0x0007" />
+ <id name="MINUTES" value="0x0008" />
+ <id name="SECONDS" value="0x0009" />
+
+ <id name="MAIN_MAP" value="0x0010" />
+ <id name="SPLIT_SCREEN" value="0x0011" />
+
+ <id name="2D" value="0x0020" />
+ <id name="3D" value="0x0021" />
+
+ <id name="LOCALE" value="0x0025" />
+
+ <id name="UNITS_OF_MEASUREMENT" value="0x0030" />
+ <id name="LENGTH" value="0x0031" />
+ <id name="METER" value="0x0032" />
+ <id name="MILE" value="0x0033" />
+ <id name="KM" value="0x0034" />
+ <id name="YARD" value="0x0035" />
+ <id name="FOOT" value="0x0036" />
+
+ <id name="MIN" value="0x0040" />
+ <id name="MAX" value="0x0041" />
+ <id name="MID" value="0x0042" />
+
+ <id name="VISIBLE" value="0x0043" />
+ <id name="INVISIBLE" value="0x0044" />
+ <id name="FROZEN" value="0x0045" />
+
+ <id name="LEVEL1" value="0x0050" />
+ <id name="LEVEL2" value="0x0051" />
+ <id name="LEVEL3" value="0x0052" />
+ <id name="LEVEL4" value="0x0053" />
+ <id name="LEVEL5" value="0x0054" />
+
+ <id name="THEME_1" value="0x0060" />
+ <id name="THEME_2" value="0x0061" />
+ <id name="THEME_3" value="0x0062" />
+
+ <id name="CONSTANT_ANGLE" value="0x0070" />
+ <id name="TRACK_UP" value="0x0071" />
+ <id name="TOWARDS_TARGET" value="0x0072" />
+
+ <id name="PAN_START" value="0x0100" />
+ <id name="PAN_TO" value="0x0101" />
+ <id name="PAN_END" value="0x0102" />
+
+ <id name="BUILDINGS" value="0x0080" />
+ <id name="TERRAIN" value="0x0081" />
+
+ <id name="AUTOMATIC" value="0x0110" />
+ <id name="MANUAL" value="0x0111" />
+ <id name="HYBRID" value="0x0112" />
+
+ <id name="CUSTOM_ELEMENT" value="0x0120" />
+ <id name="CURRENT_POSITION" value="0x0121" />
+ <id name="WAYPOINT" value="0x0122" />
+ <id name="POI" value="0x0123" />
+ <id name="TRAFFIC_INCIDENT" value="0x0124" />
+ <id name="ROUTE" value="0x0125" />
+ <id name="GEOCOORDINATES" value="0x0126" />
+
+</constants>
diff --git a/api/map-viewer/genivi-mapviewer-mapviewercontrol.xml b/api/map-viewer/genivi-mapviewer-mapviewercontrol.xml
new file mode 100755
index 0000000..5edfb92
--- /dev/null
+++ b/api/map-viewer/genivi-mapviewer-mapviewercontrol.xml
@@ -0,0 +1,1507 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/mapviewer" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.mapviewer.MapViewerControl">
+ <version>3.0.0-alpha (07-06-2013)</version>
+ <doc>
+ <line>MapViewerControl = This interface offers functions to control the MapViewer</line>
+ </doc>
+ <method name="GetVersion">
+ <doc>
+ <line>GetVersion = This method returns the API version implemented by the server application</line>
+ </doc>
+ <arg name="version" type="(qqqs)" direction="out">
+ <doc>
+ <line>version = struct(major,minor,micro,date)</line>
+ <line>major = when the major changes, then backward compatibility with previous releases is not granted</line>
+ <line>minor = when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added)</line>
+ <line>micro = when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications)</line>
+ <line>date = release date (e.g. 21-06-2011)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="CreateMapViewInstance">
+ <doc>
+ <line>CreateMapViewInstance = This method creates a new map instance</line>
+ <line>Note: when a map instance is created, it is set to 'not visible' by default</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewSize" type="(qq)" direction="in">
+ <doc>
+ <line>mapViewSize = struct(horizontalSize,verticalSize) of the map instance in pixels.</line>
+ <line>horizontalSize = horizontal size of the map instance in pixels</line>
+ <line>verticalSize = vertical size of the map instance in pixels</line>
+ </doc>
+ </arg>
+ <arg name="mapViewType" type="q" direction="in">
+ <doc>
+ <line>mapViewType = enum(INVALID,MAIN_MAP,SPLIT_SCREEN, ... )</line>
+ <line>Note: to be used in case that a specific position of the map instance with respect to the display viewport is required</line>
+ <line>For example, if the instance 1 is of type MAIN_MAP and the instance 2 is of type SPLIT_SCREEN, the offset of the map instances</line>
+ <line>with respect to the display viewport could be (0;0) and (hres/2;0) respectively</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="out">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.mapviewer.MapViewerControl.Error.NoMoreMapViewInstanceHandles">
+ <doc>
+ <line>This error is generated if no more map view instance handles are available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="ReleaseMapViewInstance">
+ <doc>
+ <line>ReleaseMapViewInstance = This method releases (i.e. destroys) a given map instance. Only invisible map instances can be released</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.mapviewer.MapViewerControl.Error.MapViewInstanceNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to delete a map view instance handle that is not available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetMapViewType">
+ <doc>
+ <line>GetMapViewType = This method returns the map type of a map instance as it was set using CreateMapViewInstance</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewType" type="q" direction="out">
+ <doc>
+ <line>mapViewType = enum(INVALID,MAIN_MAP,SPLIT_SCREEN, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedMapViewTypes">
+ <doc>
+ <line>GetSupportedMapViewTypes = This method retrieves the supported map view types</line>
+ </doc>
+ <arg name="mapViewTypeList" type="aq" direction="out">
+ <doc>
+ <line>mapViewTypeList = array[mapViewType]</line>
+ <line>mapViewType = enum(INVALID,MAIN_MAP,SPLIT_SCREEN, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetTargetPoint">
+ <doc>
+ <line>SetTargetPoint = This method sets the position of the point the camera is always aimed at</line>
+ <line>Note: the target point is typically visualized in the center of the map</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="targetPoint" type="(ddi)" direction="in">
+ <doc>
+ <line>targetPoint = (lat,lon,alt)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]</line>
+ <line>alt = altitude to the ground in meters</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetTargetPoint">
+ <doc>
+ <line>GetTargetPoint = This method retrieves the target point position</line>
+ <line>Note: if the FollowCar mode is active, the this method will return the current vehicle position</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="targetPoint" type="(ddi)" direction="out">
+ <doc>
+ <line>targetPoint = (lat,lon,alt)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]</line>
+ <line>alt = altitude to the ground in meters</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetFollowCarMode">
+ <doc>
+ <line>SetFollowCarMode = This method sets the FollowCar mode</line>
+ <line>Note: if the FollowCar is activated, the current car position is interpreted as target point position</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="followCarMode" type="b" direction="in">
+ <doc>
+ <line>followCarMode = flag. If true, the current car position is interpreted as position of the point the camera must look at</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetFollowCarMode">
+ <doc>
+ <line>GetFollowCarMode = This method returns the current FollowCar-mode</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="followCarMode" type="b" direction="out">
+ <doc>
+ <line>followCarMode = flag. If true, the current car position is interpreted as position of the point the camera must look at</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetCameraPosition">
+ <doc>
+ <line>SetCameraPosition = This method sets the coordinates of the point at which the camera must be positioned</line>
+ <line>Note: the camera heading will be automatically set in such a way, that the camera is aimed at the view point</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="position" type="(ddi)" direction="in">
+ <doc>
+ <line>position = (lat,lon,alt)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]</line>
+ <line>alt = altitude to the ground in meters</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetCameraPosition">
+ <doc>
+ <line>GetCameraPosition = This method returns the coordinates of the point at which the camera is positioned</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="position" type="(ddi)" direction="out">
+ <doc>
+ <line>position = (lat,lon,alt)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]</line>
+ <line>alt = altitude to the ground in meters</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetCameraHeadingAngle">
+ <doc>
+ <line>SetCameraHeadingAngle = This method sets the map view heading angle</line>
+ <line>Note: the camera position will be automatically set in such a way, that it looks at the currently selected target point</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="heading" type="i" direction="in">
+ <doc>
+ <line>heading = heading angle in degrees. Range [0:360]</line>
+ <line>The angle in degrees between projection on the ground plane of the line through the center of the screen and the top-centre of the screen, and the North direction</line>
+ <line>0 degrees means that the map view is oriented such that North is at the top of the screen</line>
+ <line>Degrees are measured clockwise such that 90 degrees correspond to the East direction</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetCameraHeadingToTarget">
+ <doc>
+ <line>SetCameraHeadingToTarget = This method sets the camera heading in such a way, that the camera always looks at a given target</line>
+ <line>Note: the camera position will be automatically set in such a way, that it aims at the current view point</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="target" type="(dd)" direction="in">
+ <doc>
+ <line>target = struct(lat,lon)</line>
+ <line>lat = latitude of the point towards which the map vertical axis must be aligned in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude of the point towards which the map vertical axis must be aligned in format %3.6f. Range[-180:+180]</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetCameraHeadingTrackUp">
+ <doc>
+ <line>SetCameraHeadingTrackUp = This method sets the camera heading in such a way, that the camera always looks in the direction in which the car is moving</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetCameraHeading">
+ <doc>
+ <line>GetCameraHeading = This method returns the current camera heading</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="headingType" type="q" direction="out">
+ <doc>
+ <line>headingType = enum(INVALID,CONSTANT_ANGLE,TRACK_UP,TOWARDS_TARGET, ... )</line>
+ </doc>
+ </arg>
+ <arg name="headingAngle" type="i" direction="out">
+ <doc>
+ <line>headingAngle = heading angle in degrees measured from the North axis clockwise. Range[0:360]</line>
+ <line>Note: meaningful only if heading != TOWARDS_TARGET, otherwise it is just a dummy value and must be set to 0</line>
+ </doc>
+ </arg>
+ <arg name="target" type="(dd)" direction="out">
+ <doc>
+ <line>headingTarget = struct(lat,lon)</line>
+ <line>lat = latitude of the point towards which the map vertical axis must be aligned in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude of the point towards which the map vertical axis must be aligned in format %3.6f. Range[-180:+180]</line>
+ <line>Note: meaningful only if heading = TOWARDS_TARGET, otherwise it is just a dummy value and must be set to (0,0)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetCameraTiltAngle">
+ <doc>
+ <line>SetCameraTiltAngle = This method sets the camera tilt angle</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="tilt" type="i" direction="in">
+ <doc>
+ <line>tilt = tilt angle in degrees. Range [-180:180]</line>
+ <line>Example: 0 = down (straight down to the ground plane), 90 = front (parrallel to the ground plane), 180 = top (straight up to the sky)</line>
+ <line>Negative angles [0:-180] result in an upside down view</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetCameraTiltAngle">
+ <doc>
+ <line>GetMapViewTiltAngle = This method returns the camera tilt angle</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="tilt" type="i" direction="out">
+ <doc>
+ <line>tilt = tilt angle in degrees. Range [-180:180]</line>
+ <line>Example: 0 = down (straight down to the ground plane), 90 = front (parrallel to the ground plane), 180 = top (straight up to the sky)</line>
+ <line>Negative angles [0:-180] result in an upside down view</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetCameraRollAngle">
+ <obligation>Optional</obligation>
+ <doc>
+ <line>SetCameraRollAngle = This method sets the camera roll angle</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="roll" type="i" direction="in">
+ <doc>
+ <line>roll = roll angle in degrees. Range [-180:180]</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetCameraRollAngle">
+ <obligation>Optional</obligation>
+ <doc>
+ <line>GetCameraRollAngle = This method returns the camera roll angle</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="roll" type="i" direction="out">
+ <doc>
+ <line>roll = roll angle in degrees. Range [-180:180]</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetCameraDistanceFromTargetPoint">
+ <doc>
+ <line>SetCameraDistanceFromTargetPoint = This method sets the mode and the camera distance from the target point</line>
+ <line>Note: this method can be used to zoom in and out</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="distance" type="u" direction="in">
+ <doc>
+ <line>distance = distance from the view point in meters</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetCameraDistanceFromTargetPoint">
+ <doc>
+ <line>GetCameraDistanceFromTargetPoint = This method gets the mode and the camera distance from the target point</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="distance" type="u" direction="out">
+ <doc>
+ <line>distance = distance from the view point in meters</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewScaleMode">
+ <doc>
+ <line>SetMapViewScaleMode = This method sets the scaling mode.</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="scaleMode" type="q" direction="in">
+ <doc>
+ <line>scaleMode = enum(AUTOMATIC,MANUAL,HYBRID)</line>
+ <line>scaleMode = AUTOMATIC, adjusts the camera distance automatically (e.g. depending on the speed)</line>
+ <line>scaleMode = MANUAL, the camera distance is specified by the argument 'distance'</line>
+ <line>scaleMode = HYBRID, e.g. AUTOMATIC depending on the proximity to the target, MANUAL otherwise</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetMapViewScaleMode">
+ <doc>
+ <line>GetMapViewScaleMode = This method gets the scaling mode.</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="scaleMode" type="q" direction="out">
+ <doc>
+ <line>scaleMode = enum(AUTOMATIC,MANUAL,HYBRID)</line>
+ <line>scaleMode = AUTOMATIC, adjusts the camera distance automatically (e.g. depending on the speed)</line>
+ <line>scaleMode = MANUAL, the camera distance is specified by the argument 'distance'</line>
+ <line>scaleMode = HYBRID, e.g. AUTOMATIC depending on the proximity to the target, MANUAL otherwise</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedMapViewScaleModes">
+ <doc>
+ <line>GetSupportedMapViewScaleModes = This method gets the supported scaling modes.</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="scaleModeList" type="aq" direction="out">
+ <doc>
+ <line>scaleModeList = array[scaleMode]</line>
+ <line>scaleMode = enum(AUTOMATIC,MANUAL,HYBRID)</line>
+ <line>scaleMode = AUTOMATIC, adjusts the camera distance automatically (e.g. depending on the speed)</line>
+ <line>scaleMode = MANUAL, the camera distance is specified by the argument 'distance'</line>
+ <line>scaleMode = HYBRID, e.g. AUTOMATIC depending on the proximity to the target, MANUAL otherwise</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="MapViewScaleChanged">
+ <doc>
+ <line>MapViewScaleChanged = This signal is emitted when the mapview scale changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="scaleID" type="y">
+ <doc>
+ <line>scaleID = scale identifier. Range[0:256]</line>
+ </doc>
+ </arg>
+ <arg name="isMinMax" type="q">
+ <doc>
+ <line>isMinMax = enum(INVALID,MIN,MAX,MID, ... )</line>
+ <line>MIN = scale ID minimal value</line>
+ <line>MID = scale ID intermediate value</line>
+ <line>MAX = scale ID maximal value</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="AddMapViewScaleChangedListener">
+ <doc>
+ <line>AddMapViewScaleChangedListener = This method adds a listener which is notified when map view scale changes.</line>
+ </doc>
+ </method>
+ <method name="RemoveMapViewScaleChangedListener">
+ <doc>
+ <line>RemoveMapViewScaleChangedListener = This method removes a listener which is notified when map view scale changes.</line>
+ </doc>
+ </method>
+ <method name="SetCameraHeight">
+ <doc>
+ <line>SetCameraHeight = This method sets the camera height</line>
+ <line>Note: this method is a subset of SetCameraPosition</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="height" type="u" direction="in">
+ <doc>
+ <line>height = height from the ground in meters</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetCameraHeight">
+ <doc>
+ <line>GetCameraHeight = This method gets the camera height</line>
+ <line>Note: this method is a subset of GetCameraPosition</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="height" type="u" direction="out">
+ <doc>
+ <line>height = height from the ground in meters</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewPerspective">
+ <doc>
+ <line>SetMapViewPerspective = This method sets the map perspective</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="perspective" type="q" direction="in">
+ <doc>
+ <line>perspective = enum(INVALID,2D,3D, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetMapViewPerspective">
+ <doc>
+ <line>GetMapViewPerspective = This method returns the current map perspective</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="perspective" type="q" direction="out">
+ <doc>
+ <line>perspective = enum(INVALID,2D,3D, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedMapViewPerspectives">
+ <doc>
+ <line>GetSupportedMapViewPerspectives = This method retrieves the supported mapview perspectives</line>
+ </doc>
+ <arg name="perspectiveList" type="aq" direction="out">
+ <doc>
+ <line>perspectiveList = array[perspective]</line>
+ <line>perspective = enum(INVALID,2D,3D, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewObjectVisibility">
+ <doc>
+ <line>SetMapViewObjectVisibility = This method specifies the type of objects to show on the map.</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="objectVisibilityList" type="a{qb}" direction="in">
+ <doc>
+ <line> objectVisibilityList = array[objectVisibility]</line>
+ <line> objectVisibility = dictionary[key,value]</line>
+ <line> key = enum[BUILDINGS,TERRAIN, ...]</line>
+ <line> value = value of type 'b'; if true the objects are shown else they are not shown</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetMapViewObjectVisibility">
+ <doc>
+ <line>GetMapViewObjectVisibility = This method gets the type of objects shown on the map.</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="objectVisibilityList" type="a{qb}" direction="out">
+ <doc>
+ <line> objectVisibilityList = array[objectVisibility]</line>
+ <line> objectVisibility = dictionary[key,value]</line>
+ <line> key = enum[BUILDINGS,TERRAIN, ...]</line>
+ <line> value = value of type 'b'; if true the objects are shown else they are not shown</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedMapViewObjectVisibilities">
+ <doc>
+ <line>GetSupportedMapViewObjectVisibilities = This method gets the supported object visibilities.</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="objectVisibilityList" type="aq" direction="out">
+ <doc>
+ <line> objectVisibilityList = array[objectVisibility]</line>
+ <line> objectVisibility = enum[BUILDINGS,TERRAIN, ...]</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetScaleList">
+ <doc>
+ <line>GetScaleList = This method returns a list of supported map scales</line>
+ <line>Note: a mapscale consists of an unique ID, a ScaleValue, a ScaleUnit and a number of MillimetesPerPixel</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="scaleList" type="a(qqqu)" direction="out">
+ <doc>
+ <line>scaleList = array[struct(scaleId,scaleValue,scaleUnit,millimetersPerPixel)]</line>
+ <line>scaleId = scale identifier. Range [0:256]</line>
+ <line>scaleValue = scale value. It can assume values like 100, 200, 1000, ...</line>
+ <line>scaleUnit = unit of measurement. It is an enum(INVALID,METER,KM,MILE,YARD,FOOT, ... )</line>
+ <line>millimetersPerPixel = number indicating the number of millimeters per pixel</line>
+ <line>Example: ((1,100,METER,1000),(2,200,METER,1000),(3,500,METER,1000), ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewScale">
+ <doc>
+ <line>SetMapViewScale = This method sets the map scale by specifying a ScaleID</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="scaleID" type="q" direction="in">
+ <doc>
+ <line>scaleID = scale identifier. Range[0:256]</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewScaleByDelta">
+ <doc>
+ <line>SetMapViewScaleByDelta = This method sets the map scale by specifying a delta value with respect to the currently set ScaleID</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="scaleDelta" type="n" direction="in">
+ <doc>
+ <line>scaleDelta = This parameter can have either positive or negative values. '0' means no change. Positive values indicate larger scales</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewScaleByMetersPerPixel">
+ <doc>
+ <line>SetMapViewScaleByMetersPerPixel = This method sets the map scale by specifying the number of meters that a pixel represents</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="metersPerPixel" type="d" direction="in">
+ <doc>
+ <line>metersPerPixel = meters per pixel</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetMapViewScale">
+ <doc>
+ <line>GetMapViewScale = This method returns the currently used map scale</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="scaleID" type="y" direction="out">
+ <doc>
+ <line>scaleID = scale identifier. Range[0:256]</line>
+ </doc>
+ </arg>
+ <arg name="isMinMax" type="q" direction="out">
+ <doc>
+ <line>isMinMax = enum(INVALID,MIN,MAX,MID, ... )</line>
+ <line>MIN = scale ID minimal value</line>
+ <line>MID = scale ID intermediate value</line>
+ <line>MAX = scale ID maximal value</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewBoundingBox">
+ <doc>
+ <line>SetMapViewBoundingBox = This method sets the map bounding box</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="boundingBox" type="((dd)(dd))" direction="in">
+ <doc>
+ <line>boundingBox = struct(top-left-corner,bottom-right-corner)</line>
+ <line>top-left-corner = struct(lat,lon)</line>
+ <line>bottom-right-corner = struct(lat,lon)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetMapViewBoundingBox">
+ <doc>
+ <line>GetMapViewBoundingBox = This method returns the bounding box of a given map instance</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="boundingBox" type="((dd)(dd))" direction="out">
+ <doc>
+ <line>boundingBox = struct(top-left-corner,bottom-right-corner)</line>
+ <line>top-left-corner = struct(lat,lon)</line>
+ <line>bottom-right-corner = struct(lat,lon)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewSaveArea">
+ <doc>
+ <line>SetMapViewSaveArea = This methods defines the area that the HMI guarantees not to
+cover with other windows or user interface elements</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="saveArea" type="(dddd)" direction="in">
+ <doc>
+ <line>boundingBox = struct(rect-left,rect-right,rect-top,rect-bottom)</line>
+ <line>rect-left = covered area on the left. Range [0:1]</line>
+ <line>rect-right = covered area on the right. Range [0:1]</line>
+ <line>rect-top = covered area on top. Range [0:1]</line>
+ <line>rect-bottom = covered area at the bottom. Range [0:1]</line>
+ <line>Note: 0.0 means there is no covered area (offset) from that side</line>
+ <line>When all four parameters are 0 then the save area is equal to the viewport area (being the default)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetMapViewSaveArea">
+ <doc>
+ <line>SetMapViewSaveArea = This methods defines the area that the HMI guarantees not to
+cover with other windows or user interface elements</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="saveArea" type="(dddd)" direction="out">
+ <doc>
+ <line>boundingBox = struct(rect-left,rect-right,rect-top,rect-bottom)</line>
+ <line>rect-left = covered area on the left. Range [0:1]</line>
+ <line>rect-right = covered area on the right. Range [0:1]</line>
+ <line>rect-top = covered area on top. Range [0:1]</line>
+ <line>rect-bottom = covered area at the bottom. Range [0:1]</line>
+ <line>Note: 0.0 means there is no covered area (offset) from that side</line>
+ <line>When all four parameters are 0 then the save area is equal to the viewport area (being the default)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewPan">
+ <doc>
+ <line>SetMapViewPan = This method pans a given map instance</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="panningAction" type="q" direction="in">
+ <doc>
+ <line>panningAction = enum(PAN_START,PAN_TO,PAN_END)</line>
+ <line>PAN_START, start panning the map at the specified screen coordinate identified by the arguments 'x' and 'y'</line>
+ <line>PAN_TO, pan the map to the specified screen coordinate identified by the arguments 'x' and 'y'; it has no effect before PAN_START or after PAN_END</line>
+ <line>PAN_END, pan the map to the specified screen coordinate identified by the arguments 'x' and 'y' and end panning; it has no effect before PAN_START</line>
+ </doc>
+ </arg>
+ <arg name="pixelCoordinates" type="a(qq)" direction="in">
+ <doc>
+ <line>pixelCoordinates = array[struct(x,y)]</line>
+ <line>x = x-coordinate (x=0 indicates the first left pixel of the map view)</line>
+ <line>y = y-coordinate (y=0 indicates the first top pixel of the map view)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetMapViewPan">
+ <doc>
+ <line>GetMapViewPan</line>
+ <line>This method is meant for debugging purposes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="valueToReturn" type="q" direction="in">
+ <doc>
+ <line>valueToReturn = enum(PAN_START,PAN_TO,PAN_END)</line>
+ </doc>
+ </arg>
+ <arg name="pixelCoordinates" type="a(qq)" direction="in">
+ <doc>
+ <line>pixelCoordinates = array[struct(x,y)]</line>
+ <line>x = x-coordinate (x=0 indicates the first left pixel of the map view)</line>
+ <line>y = y-coordinate (y=0 indicates the first top pixel of the map view)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewRotation">
+ <doc>
+ <line>SetMapViewRotation = This method rotates the map</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="rotationAngle" type="i" direction="in">
+ <doc>
+ <line>rotationAngle = rotation angle in degrees measured from the North axis clockwise. Range[0:360]</line>
+ </doc>
+ </arg>
+ <arg name="rotationAnglePerSecond" type="i" direction="in">
+ <doc>
+ <line>rotationAnglePerSecond = partial rotation for each second</line>
+ <line>The value can be set implement a smooth rotation</line>
+ <line>If rotationAnglePerSecond = rotationAngle it means that the rotation must be instantaneous</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetMapViewRotation">
+ <doc>
+ <line>GetMapViewRotation = This method is particularly interesting for debugging purposes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="rotationAngle" type="i" direction="out">
+ <doc>
+ <line>rotationAngle = rotation angle in degrees measured from the North axis clockwise. Range[0:360]</line>
+ </doc>
+ </arg>
+ <arg name="rotationAnglePerFrame" type="i" direction="out">
+ <doc>
+ <line>rotationAnglePerFrame = partial rotation for each map frame in degrees</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewVisibilityMode">
+ <doc>
+ <line>SetMapViewVisibilityMode = This method sets the current visibility mode</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="visibilityMode" type="q" direction="in">
+ <doc>
+ <line>visibilityMode = enum(INVALID,VISIBLE,INVISIBLE,FROZEN, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetMapViewVisibilityMode">
+ <doc>
+ <line>GetMapViewVisibilityMode = This method returns the current visibility mode</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="visibilityMode" type="q" direction="out">
+ <doc>
+ <line>visibilityMode = enum(INVALID,VISIBLE,INVISIBLE,FROZEN, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedMapViewVisibilityModes">
+ <doc>
+ <line>GetSupportedMapViewVisibilityModes = This method retrieves the supported mapview visibility modes</line>
+ </doc>
+ <arg name="visibilityModeList" type="aq" direction="out">
+ <doc>
+ <line>visibilityModeList = array[visibilityMode]</line>
+ <line>visibilityMode = enum(INVALID,VISIBLE,INVISIBLE,FROZEN, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="MapViewVisibilityChanged">
+ <doc>
+ <line>MapViewVisibilityChanged = This signal is emitted when the MapView visibility changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="visibilityMode" type="q">
+ <doc>
+ <line>visibilityMode = enum(INVALID,VISIBLE,INVISIBLE,FROZEN, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="SetMapViewPerformanceLevel">
+ <doc>
+ <line>SetMapViewPerformanceLevel = This method sets the perfomance level of a given map instance</line>
+ <line>Note: it can be used to set the MapView in application specific performance mode (e.g. low CPU-usage or low memory-usage)</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="performanceLevel" type="q" direction="in">
+ <doc>
+ <line>performanceLevel = enum(INVALID,LEVEL1,LEVEL2,LEVEL3,LEVEL4,LEVEL5, ... )</line>
+ <line>Note: performance levels are application specific</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetMapViewPerformanceLevel">
+ <doc>
+ <line>GetMapViewPerformanceLevel = This method returns the perfomance level of a given map instance</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="performanceLevel" type="q" direction="out">
+ <doc>
+ <line>performanceLevel = enum(INVALID,LEVEL1,LEVEL2,LEVEL3,LEVEL4,LEVEL5, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedMapViewPerformanceLevels">
+ <doc>
+ <line>GetSupportedMapViewPerformanceLevels = This method retrieves the supported perfomance levels</line>
+ </doc>
+ <arg name="performanceLevelList" type="aq" direction="out">
+ <doc>
+ <line>performanceLevelList = array[performanceLevel]</line>
+ <line>performanceLevel = enum(INVALID,LEVEL1,LEVEL2,LEVEL3,LEVEL4,LEVEL5, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="DisplayRoute">
+ <doc>
+ <line>DisplayRoute = This method visualizes one of the calculated routes</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="highlighted" type="b" direction="in">
+ <doc>
+ <line>highlighted = flag. TRUE means highligted,FALSE means not highlighted</line>
+ <line>Note: the highlighted route must be visualized on top of the other routes</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="HideRoute">
+ <doc>
+ <line>HideRoute = This method hides one of the visible routes</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ <line>Note: the routeHandle has to be one of the visible routes</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetDisplayedRoutes">
+ <doc>
+ <line>GetDisplayedRoutes = This method returns a list of displayed routes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="displayedRoutes" type="a(ub)" direction="out">
+ <doc>
+ <line>displayedRoutes = array[struct(routeHandle,highlighted)]</line>
+ <line>routeHandle = Route handle of a displayed route. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ <line>highlighted = flag. TRUE means highlighted,FALSE means not highlighted</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="DisplayedRoutes">
+ <doc>
+ <line>DisplayedRoutes = This signal is emitted when the list of displayed routes change</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="displayedRoutes" type="a(ub)">
+ <doc>
+ <line>displayedRoutes = array[struct(routeHandle,highlighted)]</line>
+ <line>routeHandle = Route handle of a displayed route. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ <line>highlighted = flag. TRUE means highlighted,FALSE means not highlighted</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="GetPoiCategoriesVisible">
+ <doc>
+ <line>GetPoiCategoriesVisible = Get the set of POI categories displayed on the map.</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="poiCategoryIds" type="aq" direction="out">
+ <doc>
+ <line>poiCategoryIds = array[poiCategoryId]</line>
+ <line>poiCategoryId = a POI category as defined in the 'GENIVI POIService API'.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetPoiCategoriesVisible">
+ <doc>
+ <line>SetPoiCategoriesVisible = Add POI categories to the set of POI categories displayed on the map.
+ Any specified category that until now was displayed with scale limits is now displayed without limits.</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="poiCategoryIds" type="aq" direction="in">
+ <doc>
+ <line>poiCategoryIds = array[poiCategoryId]</line>
+ <line>poiCategoryId = a POI category as defined in the 'GENIVI POIService API'.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetPoiCategoriesVisibleWithinLimits">
+ <doc>
+ <line>SetPoiCategoriesVisible = Add POI categories to the set of POI categories displayed on the map, where the POI's are only displayed in a specific range of scales.
+ Any specified category that until now was displayed without scale limits is now displayed with limits.</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="poiCategoryIds" type="aq" direction="in">
+ <doc>
+ <line>poiCategoryIds = array[poiCategoryId]</line>
+ <line>poiCategoryId = a POI category as defined in the 'GENIVI POIService API'.</line>
+ </doc>
+ </arg>
+ <arg name="minScaleID" type="y" direction="in">
+ <doc>
+ <line>minScaleID = minimun scale on which the POI categories are displayed</line>
+ </doc>
+ </arg>
+ <arg name="maxScaleID" type="y" direction="in">
+ <doc>
+ <line>maxScaleID = maximum scale on which the POI categories are displayed</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetPoiCategoriesNotVisible">
+ <doc>
+ <line>SetPoiCategoriesNotVisible = Remove POI categories from the set of POI categories displayed on the map.</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="poiCategoryIds" type="aq" direction="in">
+ <doc>
+ <line>poiCategoryIds = array[poiCategoryId]</line>
+ <line>poiCategoryId = a POI category as defined in the 'GENIVI POIService API'.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetTrafficIncidentsVisibility">
+ <doc>
+ <line>SetTrafficIncidentsVisibility = Set the visibility of Traffic Incidents on the map.</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="visible" type="b" direction="in">
+ <doc>
+ <line>visible = If true, Traffic Incidents are shown on the map, else they are not shown.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetMapViewTheme">
+ <doc>
+ <line>SetMapViewTheme = This method configures the theme of a given map view instance</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewTheme" type="q" direction="in">
+ <doc>
+ <line>mapViewTheme = enum(INVALID,THEME_1,THEME_2,THEME_3, ... )</line>
+ <line>Note: Themes are implementation specific. Example: THEME_1 = day color, THEME_2 = night color</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetMapViewTheme">
+ <doc>
+ <line>GetMapViewTheme = This method returns the current theme of a given map view instance</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewTheme" type="q" direction="out">
+ <doc>
+ <line>mapViewTheme = enum(INVALID,THEME_1,THEME_2,THEME_3, ... )</line>
+ <line>Note: Themes are implementation specific. Example: THEME_1 = day color, THEME_2 = night color</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedMapViewThemes">
+ <doc>
+ <line>GetSupportedMapViewThemes = This method retrieves the supported mapview themes</line>
+ </doc>
+ <arg name="mapViewThemeList" type="aq" direction="out">
+ <doc>
+ <line>mapViewThemeList = array[mapViewTheme]</line>
+ <line>mapViewTheme = enum(INVALID,THEME_1,THEME_2,THEME_3, ... )</line>
+ <line>Note: Themes are implementation specific. Example: THEME_1 = day color, THEME_2 = night color</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="ConvertPixelCoordsToGeoCoords">
+ <doc>
+ <line>ConvertPixelCoordsToGeoCoords = This method converts pixel coordinates to geographical coordinates</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="pixelCoordinates" type="a(qq)" direction="in">
+ <doc>
+ <line>pixelCoordinates = array[struct(x,y)]</line>
+ <line>x = x-coordinate (x=0 indicates the first left pixel of the map view)</line>
+ <line>y = y-coordinate (y=0 indicates the first top pixel of the map view)</line>
+ </doc>
+ </arg>
+ <arg name="geoCoordinates" type="a(dd)" direction="out">
+ <doc>
+ <line>geoCoordinates = array[struct(lat,lon)]</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="ConvertGeoCoordsToPixelCoords">
+ <doc>
+ <line>ConvertGeoCoordsToPixelCoords = This method converts geographical coordinates into pixel coordinates</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="geoCoordinates" type="a(dd)" direction="in">
+ <doc>
+ <line>geoCoordinates = array[struct(lat,lon)]</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]</line>
+ </doc>
+ </arg>
+ <arg name="pixelCoordinates" type="a(qq)" direction="out">
+ <doc>
+ <line>pixelCoordinates = array[struct(x,y)]</line>
+ <line>x = x-coordinate (x=0 indicates the first left pixel of the map view)</line>
+ <line>y = y-coordinate (y=0 indicates the first top pixel of the map view)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="DisplayCustomElements">
+ <doc>
+ <line>DisplayCustomElements = This method visualizes a set of custom elements on the map</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="customElements" type="a(ss(dd)(nn))" direction="in">
+ <doc>
+ <line>customElements = array[struct(name,iconUri,coordinate,anchorPoint)]</line>
+ <line>name = name of the custom element</line>
+ <line>iconUri = uri to the icon of the custome element</line>
+ <line>coordinate = struct(lat,lon)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]. Example: 48.053250</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]. Example: 8.321000</line>
+ <line>anchorPoint=struct(anchorX,anchorY)</line>
+ <line>anchorPoint defines which point on the icon is used as the reference for associating the icon to the map coordinate</line>
+ <line> (0,0) is the center of the icon </line>
+ <line> (-1,-1) is the top left corner of the icon </line>
+ <line> (1,1) is the bottom right corner of the icon </line>
+ <line>anchorX = anchor x value</line>
+ <line>anchorY = anchor y value</line>
+ </doc>
+ </arg>
+ <arg name="customElementHandles" type="au" direction="out">
+ <doc>
+ <line>customElementHandles = handles to the custom elements displayed on the map.
+ The order of the handles is the same as the order of custom elements specified in the argument 'customElements'.
+ Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="HideCustomElements">
+ <doc>
+ <line>HideCustomElements = This method hides a set of custom elements which were visualized by DisplayCustomElements</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="customElementHandles" type="au" direction="in">
+ <doc>
+ <line>customElementHandles = Custom element handles. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetDisplayedCustomElements">
+ <doc>
+ <line>GetDisplayedCustomElements = This method retrieves the visualized custom elements on the map</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="customElements" type="a{u(ss(dd)(nn))}" direction="out">
+ <doc>
+ <line>customElements = array[customElement]</line>
+ <line>customElement = tuple[customElementHandle,struct(name,iconUri,coordinate,anchorPoint)]</line>
+ <line>customElementHandle = Custom element handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ <line>name = name of the custom element</line>
+ <line>iconUri = uri to the icon of the custome element</line>
+ <line>coordinate = struct(lat,lon)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]. Example: 48.053250</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]. Example: 8.321000</line>
+ <line>anchorPoint=struct(anchorX,anchorY)</line>
+ <line>anchorPoint defines which point on the icon is used as the reference for associating the icon to the map coordinate</line>
+ <line> (0,0) is the center of the icon </line>
+ <line> (-1,-1) is the top left corner of the icon </line>
+ <line> (1,1) is the bottom right corner of the icon </line>
+ <line>anchorX = anchor x value</line>
+ <line>anchorY = anchor y value</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SelectElementsOnMap">
+ <doc>
+ <line>SelectElementsOnMap = This method selects elements on the map view which are at the position specified by user input</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="pixelCoordinate" type="(qq)" direction="in">
+ <doc>
+ <line>pixelCoordinates = struct(x,y)</line>
+ <line>x = x-coordinate of the position on the map view specified by user input (x=0 indicates the first left pixel of the map view)</line>
+ <line>y = y-coordinate of the position on the map view specified by user input (y=0 indicates the first top pixel of the map view)</line>
+ </doc>
+ </arg>
+ <arg name="selectableTypes" type="aq" direction="in">
+ <doc>
+ <line>selectableTypes = array[selectableType]</line>
+ <line>selectableType = enum(INVALID,CUSTOM_ELEMENT,CURRENT_POSITION,WAYPOINT,POI,TRAFFIC_INCIDENT,ROUTE,GEOCOORDINATES)</line>
+ <line>Note: The order of priority by which the elements are selected is implementation dependent</line>
+ </doc>
+ </arg>
+ <arg name="maxNumberOfSelectedElements" type="q" direction="in">
+ <doc>
+ <line>maxNumberOfSelectedElements = maximum number of selected elements to return. If 0, all possible elements which can be selected will be returned</line>
+ </doc>
+ </arg>
+ <arg name="selectedElements" type="a(q(dd)v)" direction="out">
+ <doc>
+ <line>selectedElements = array[selectableType,struct(lat,lon),value]</line>
+ <line>selectableType = enum(INVALID,CUSTOM_ELEMENT,CURRENT_POSITION,WAYPOINT,POI,TRAFFIC_INCIDENT,ROUTE,GEOCOORDINATES)</line>
+ <line>lat = latitude of the selected element in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude of the selected element in format %3.6f. Range[-180:+180]</line>
+ <line>selectableType = CUSTOM_ELEMENT, value = value of type '(uss(nn))' that expresses the extra data for a custom element</line>
+ <line>Note: the extra data for a custom element is expressed as a struct(customElementHandle,name,iconUri,struct(anchorX,anchorY))</line>
+ <line>selectableType = CURRENT_POSITION, value = null</line>
+ <line>selectableType = WAYPOINT, value = value of type '(uq)' that expresses the extra data for a waypoint</line>
+ <line>Note: the extra data for a waypoint is expressed as a struct(routeHandle,waypointIndex) where waypointIndex is the index of the waypoint on the route (the first waypoint is index 0)</line>
+ <line>selectableType = POI, value = value of type 'u' that expresses a POI handle </line>
+ <line>selectableType = TRAFFIC_INCIDENT, value = value of type 'i' that expresses a traffic incident identifier</line>
+ <line>selectableType = ROUTE, value = value of type 'u' that expresses a route handle </line>
+ <line>selectableType = GEOCOORDINATES, value = null</line>
+ </doc>
+ </arg>
+ </method>
+ </interface>
+</node>
diff --git a/api/map-viewer/genivi-mapviewer-session.xml b/api/map-viewer/genivi-mapviewer-session.xml
new file mode 100755
index 0000000..f2a8a12
--- /dev/null
+++ b/api/map-viewer/genivi-mapviewer-session.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/mapviewer" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.mapviewer.Session">
+ <version>3.0.0-alpha (07-06-2013)</version>
+ <doc>
+ <line>Session = This interface offers functions to create and delete sessions</line>
+ </doc>
+ <method name="GetVersion">
+ <doc>
+ <line>GetVersion = This method returns the API version implemented by the server application</line>
+ </doc>
+ <arg name="version" type="(qqqs)" direction="out">
+ <doc>
+ <line>version = struct(major,minor,micro,date)</line>
+ <line>major = when the major changes, then backward compatibility with previous releases is not granted</line>
+ <line>minor = when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added)</line>
+ <line>micro = when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications)</line>
+ <line>date = release date (e.g. 21-06-2011)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="CreateSession">
+ <doc>
+ <line>CreateSession = This method creates a new session</line>
+ </doc>
+ <arg name="client" type="s" direction="in">
+ <doc>
+ <line>client = name or identifier of the client application that requests a new session</line>
+ <line>The navigation core must internally associate this name to the returned session handle</line>
+ <line>This parameter can be used to identify the client application and determine if a given feature is enabled for it</line>
+ </doc>
+ </arg>
+ <arg name="sessionHandle" type="u" direction="out">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.mapviewer.Session.Error.NoMoreSessionHandles">
+ <doc>
+ <line>This error is generated if no more session handles are available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="DeleteSession">
+ <doc>
+ <line>DeleteSession = This method deletes a session and its associated resources</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.mapviewer.Session.Error.SessionNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to delete a session handle that is not available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetSessionStatus">
+ <doc>
+ <line>GetSessionStatus = This method returns whether a given session handle is available or not (for example because it was deleted)</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="sessionStatus" type="q" direction="out">
+ <doc>
+ <line>sessionStatus = enum(INVALID,AVAILABLE,NOT_AVAILABLE)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetAllSessions">
+ <doc>
+ <line>GetAllSessions = This method returns a list of all available sessions</line>
+ </doc>
+ <arg name="sessionsList" type="a(us)" direction="out">
+ <doc>
+ <line>sessionsList = array[struct(sessionHandle,client)]</line>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ <line>client = name or identifier of the client application that requested the sessionHandle</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="SessionDeleted">
+ <doc>
+ <line>SessionDeleted = This signal is emitted when a session is deleted</line>
+ </doc>
+ <arg name="sessionHandle" type="u">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </signal>
+ </interface>
+</node>
diff --git a/api/map-viewer/introspect.xsd b/api/map-viewer/introspect.xsd
new file mode 100755
index 0000000..76ed7ef
--- /dev/null
+++ b/api/map-viewer/introspect.xsd
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wmh="http://www.wmhelp.com/2003/eGenerator" elementFormDefault="qualified">
+ <!-- xmlns="introspect.dtd"
+ targetNamespace="introspect.dtd"> -->
+ <xs:element name="node">
+ <xs:annotation>
+ <xs:documentation> DTD for D-Bus Introspection data
+ </xs:documentation>
+ <xs:documentation> (C) 2005-02-02 David A. Wheeler; released under
+ the D-Bus licenses,
+ GNU GPL version 2 (or greater) and AFL 1.1 (or
+ greater)
+ </xs:documentation>
+ <xs:documentation> see D-Bus specification for documentation
+ </xs:documentation>
+ <xs:documentation> Method arguments SHOULD include "direction",
+ while
+ signal and error arguments SHOULD not (since there's no point).
+ The
+ DTD format can't express that subtlety.
+ </xs:documentation>
+ <xs:documentation> Generic metadata </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="node"/>
+ <xs:element name="interface" type="interfaceType"/>
+ </xs:choice>
+ <xs:attribute name="name" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="interfaceType">
+ <xs:sequence>
+ <xs:element name="version" type="xs:string"/>
+ <xs:element name="doc" type="docType"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="method" type="methodType"/>
+ <xs:element name="signal" type="signalType"/>
+ <xs:element name="property" type="propertyType"/>
+ <xs:element name="annotation" type="annotationType"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="methodType">
+ <xs:sequence>
+ <xs:element name="status" type="statusType" minOccurs="0"/>
+ <xs:element name="poc" type="pocType" minOccurs="0"/>
+ <xs:element name="obligation" type="obligationType" minOccurs="0"/>
+ <xs:element name="doc" type="docType"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="arg" type="argType"/>
+ <xs:element name="annotation" type="annotationType"/>
+ <xs:element name="error" type="errorType"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="signalType">
+ <xs:sequence>
+ <xs:element name="status" type="statusType" minOccurs="0"/>
+ <xs:element name="poc" type="pocType" minOccurs="0"/>
+ <xs:element name="obligation" type="obligationType" minOccurs="0"/>
+ <xs:element name="doc" type="docType"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="arg" type="argType"/>
+ <xs:element name="annotation" type="annotationType"/>
+ <xs:element name="error" type="errorType"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="argType">
+ <xs:sequence>
+ <xs:element name="doc" type="docType"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string"/>
+ <xs:attribute name="type" type="xs:string" use="required"/>
+ <xs:attribute name="direction" default="in">
+ <xs:simpleType>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="in"/>
+ <xs:enumeration value="out"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="propertyType">
+ <xs:annotation>
+ <xs:documentation> AKA "attribute" </xs:documentation>
+ </xs:annotation>
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="status" type="statusType" minOccurs="0"/>
+ <xs:element name="poc" type="pocType" minOccurs="0"/>
+ <xs:element name="obligation" type="obligationType" minOccurs="0"/>
+ <xs:element name="annotation" type="annotationType"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="type" type="xs:string" use="required"/>
+ <xs:attribute name="access" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="read"/>
+ <xs:enumeration value="write"/>
+ <xs:enumeration value="readwrite"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="annotationType">
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="value" type="xs:string" use="required"/>
+ </xs:complexType>
+ <!-- proprietary extensions from LBS-EG -->
+ <!-- <xs:complexType name="versionType" /> -->
+ <xs:complexType name="docType">
+ <xs:sequence>
+ <!-- <xs:element maxOccurs="unbounded" name="line" type="lineType"/> -->
+ <xs:element maxOccurs="unbounded" name="line" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="statusType">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Approved"/>
+ <xs:enumeration value="Pending"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="pocType">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Yes"/>
+ <xs:enumeration value="No"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="obligationType">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Mandatory"/>
+ <xs:enumeration value="Optional"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="errorType">
+ <xs:sequence>
+ <xs:element name="doc" type="docType"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <!-- <xs:complexType name="lineType" /> -->
+</xs:schema>
diff --git a/api/map-viewer/introspect.xsl b/api/map-viewer/introspect.xsl
new file mode 100644
index 0000000..29cc34c
--- /dev/null
+++ b/api/map-viewer/introspect.xsl
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+ <!--
+ Copyright (C) 2005 Lennart Poettering.
+
+ Licensed under the Academic Free License version 2.1
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+-->
+
+ <!-- v0.1 26-06-2011 Marco Residori: Added support for inline documentation (tags doc,line and version) -->
+ <!-- v0.2 12-01-2012 Marco Residori: Added support for inline documentation (tags status,type) -->
+ <!-- v0.3 18-01-2012 Marco Residori: Added support for inline documentation (tag error) -->
+ <!-- v0.4 14-03-2012 Marco Residori: Added support for property-type and property-access. Replaced tag 'type' with 'obligation' -->
+
+ <!-- $Id$ -->
+ <xsl:output method="xml" version="1.0" encoding="iso-8859-15" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes"/>
+ <xsl:template match="/">
+ <html>
+ <!-- head -->
+ <head>
+ <title>DBUS Introspection Data</title>
+ <style type="text/css">
+ body { color: black; background-color: white }
+ h1 { font-family: sans-serif }
+ ul { list-style-type: none; margin-bottom: 10px }
+ li { font-family: sans-serif }
+ .keyword { font-style: italic }
+ .type { font-weight: bold; font-size: 10pt }
+ .symbol { font-family: monospace }
+ .title { font-style: italic; color: blue }
+ .interface { padding: 10px; margin: 10px }
+
+ .line { font-style: italic; font-size:8pt; color: green}
+ .version { font-family: monospace }
+ .status { font-weight: bold; font-size:6pt }
+ .obligation { font-weight: bold; font-size:6pt }
+ .error { font-style: italic; font-size:8pt; color: black}
+ </style>
+ </head>
+ <!-- body -->
+ <body>
+ <!-- interfaces -->
+ <xsl:for-each select="node/interface">
+ <div class="interface">
+ <h1>
+ <span class="keyword">interface</span>
+ <xsl:text> </xsl:text>
+ <span class="title">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="version">version</span>
+ <xsl:text> </xsl:text>
+ <span class="version">
+ <xsl:value-of select="version"/>
+ </span>
+ </h1>
+ <ul>
+ <xsl:apply-templates select="doc"/>
+ </ul>
+ <ul>
+ <xsl:apply-templates select="annotation"/>
+ <!-- methods, signals and properties -->
+ <xsl:for-each select="method|signal|property">
+ <hr/>
+ <li>
+ <xsl:if test="status !=''">
+ <span class="status">[<xsl:value-of select="status"/>] </span>
+ </xsl:if>
+ <xsl:if test="obligation !=''">
+ <span class="obligation">[<xsl:value-of select="obligation"/>] </span>
+ </xsl:if>
+ <xsl:apply-templates select="doc"/>
+ <span class="keyword">
+ <xsl:value-of select="name()"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="symbol">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="keyword">
+ <xsl:value-of select="@access"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="type">
+ <xsl:value-of select="@type"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <ul>
+ <xsl:apply-templates select="annotation"/>
+ <!-- arguments -->
+ <xsl:for-each select="arg">
+ <br/>
+ <xsl:apply-templates select="doc"/>
+ <li>
+ <span class="keyword">
+ <xsl:choose>
+ <xsl:when test="@direction !=''">
+ <xsl:value-of select="@direction"/>
+ </xsl:when>
+ <xsl:when test="name(..) ='signal'">
+ out
+ </xsl:when>
+ <xsl:otherwise>
+ in
+ </xsl:otherwise>
+ </xsl:choose>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="type">
+ <xsl:value-of select="@type"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="symbol">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ </li>
+ </xsl:for-each>
+ <br/>
+ <!-- errors -->
+ <xsl:apply-templates select="error"/>
+ <br/>
+ </ul>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </div>
+ </xsl:for-each>
+ </body>
+ </html>
+ </xsl:template>
+ <xsl:template match="annotation">
+ <li>
+ <span class="keyword">annotation</span>
+ <code>
+ <xsl:value-of select="@name"/>
+ </code>
+ <xsl:text> = </xsl:text>
+ <code>
+ <xsl:value-of select="@value"/>
+ </code>
+ </li>
+ </xsl:template>
+ <xsl:template match="doc">
+ <li>
+ <span class="line">
+ <xsl:for-each select="line">
+ <xsl:value-of select="."/>
+ <xsl:element name="br"/>
+ </xsl:for-each>
+ </span>
+ </li>
+ </xsl:template>
+ <xsl:template match="error">
+ <li>
+ <xsl:apply-templates select="doc"/>
+ <span class="keyword">error</span>
+ <xsl:text> </xsl:text>
+ <span class="error">
+ <code>
+ <xsl:value-of select="@name"/>
+ </code>
+ </span>
+ <xsl:element name="br"/>
+ <br/>
+ </li>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/api/navigation-core/constants.xsl b/api/navigation-core/constants.xsl
new file mode 100644
index 0000000..7616ebb
--- /dev/null
+++ b/api/navigation-core/constants.xsl
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+ <!-- 09.3.2011 Marco Residori: First Draft -->
+ <!-- 14.3.2011 Marco Residori: Improved layout -->
+ <xsl:output method="xml" version="1.0" encoding="iso-8859-15" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes"/>
+ <xsl:template match="/">
+ <html>
+ <!-- head -->
+ <head>
+ <title>DBUS Introspection Data</title>
+ <style type="text/css">
+ body { color: black; background-color: white }
+ h1 { font-family: sans-serif }
+ ul { list-style-type: none; margin-bottom: 10px }
+ li { font-family: sans-serif }
+ .keyword { font-style: italic }
+ .id { font-style: italic; font-size:8pt; }
+ .title { font-style: italic; color: blue }
+ .line { font-style: italic; font-size:8pt; color: green}
+ .version { font-family: monospace }
+ </style>
+ </head>
+ <!-- body -->
+ <body>
+ <!-- definitions -->
+ <xsl:apply-templates select="constants"/>
+ </body>
+ </html>
+ </xsl:template>
+ <xsl:template match="constants">
+ <div class="constants">
+ <h1>
+ <span class="keyword">constants</span>
+ <xsl:text> </xsl:text>
+ <span class="title">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="version">version</span>
+ <xsl:text> </xsl:text>
+ <span class="version">
+ <xsl:value-of select="version"/>
+ </span>
+ </h1>
+ <xsl:apply-templates select="doc"/>
+ <xsl:for-each select="id">
+ <hr/>
+ <li>
+ <xsl:apply-templates select="doc"/>
+ <span class="id"><xsl:value-of select="@name"/> = <xsl:value-of select="@value"/></span>
+ </li>
+ </xsl:for-each>
+ </div>
+ </xsl:template>
+ <xsl:template match="doc">
+ <li>
+ <span class="line">
+ <xsl:for-each select="line">
+ <xsl:value-of select="."/>
+ <xsl:element name="br"/>
+ </xsl:for-each>
+ </span>
+ </li>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/api/navigation-core/enum.xsl b/api/navigation-core/enum.xsl
new file mode 100644
index 0000000..4c093e8
--- /dev/null
+++ b/api/navigation-core/enum.xsl
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ************************************************************************
+* Component Name: Navit POC
+* Author: Martin Schaller <martin.schaller@it-schaller.de>
+*
+* Copyright (C) 2012, GENIVI Alliance, Inc.
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License version 2 as
+* published by the Free Software Foundation.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+************************************************************************ -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+ <xsl:output method="text" encoding="iso-8859-15"/>
+ <xsl:template match="constants">
+ <xsl:variable name="constants" select="translate(@name,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
+/* This is an automatically generated file, do not edit */
+
+enum GENIVI_<xsl:value-of select="$constants"/>_Constants {<xsl:for-each select="id">
+ GENIVI_<xsl:value-of select="$constants"/>_<xsl:value-of select="translate(@name,'-','_')"/> = <xsl:value-of select="@value"/>,</xsl:for-each>
+};
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/api/navigation-core/genivi-navigationcore-configuration.xml b/api/navigation-core/genivi-navigationcore-configuration.xml
new file mode 100755
index 0000000..8585e50
--- /dev/null
+++ b/api/navigation-core/genivi-navigationcore-configuration.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.navigationcore.Configuration">
+ <version>3.0.0-alpha (07-06-2013)</version>
+ <doc>
+ <line>Configuration = This interface offers functions to set and retrieve configuration parameters</line>
+ </doc>
+ <method name="GetVersion">
+ <doc>
+ <line>GetVersion = This method returns the API version implemented by the server application</line>
+ </doc>
+ <arg name="version" type="(qqqs)" direction="out">
+ <doc>
+ <line>version = struct(major,minor,micro,date)</line>
+ <line>major = when the major changes, then backward compatibility with previous releases is not granted</line>
+ <line>minor = when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added)</line>
+ <line>micro = when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications)</line>
+ <line>date = release date (e.g. 21-06-2011)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetUnitsOfMeasurement">
+ <doc>
+ <line>SetUnitsOfMeasurement = This method sets the units of measurement</line>
+ </doc>
+ <arg name="unitsOfMeasurementList" type="a{qv}" direction="in">
+ <doc>
+ <line>unitsOfMeasurementList = array[unitsOfMeasurement]</line>
+ <line>unitsOfMeasurement = tuple (key,value)</line>
+ <line>key = enum(INVALID,LENGTH, ... )</line>
+ <line>key = LENGTH, value = value of type 'q', that represents an enum(INVALID,METER,MILE, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetUnitsOfMeasurement">
+ <doc>
+ <line>GetUnitsOfMeasurement = This method retrieves the units of measurement</line>
+ </doc>
+ <arg name="unitsOfMeasurementList" type="a{qv}" direction="out">
+ <doc>
+ <line>unitsOfMeasurementList = array[unitsOfMeasurement]</line>
+ <line>unitsOfMeasurement = tuple (key,value)</line>
+ <line>key = enum(INVALID,LENGTH, ... )</line>
+ <line>key = LENGTH, value = value of type 'q', that represents an enum(INVALID,METER,MILE, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedUnitsOfMeasurement">
+ <doc>
+ <line>GetSupportedUnitsOfMeasurement = This method retrieves the supported units of measurement</line>
+ </doc>
+ <arg name="unitsOfMeasurementList" type="a{qv}" direction="out">
+ <doc>
+ <line>unitsOfMeasurementList = array[unitsOfMeasurement]</line>
+ <line>unitsOfMeasurement = dictionary[key,value]</line>
+ <line>dictionary = array of tuples (key,value)</line>
+ <line>key = enum(INVALID,LENGTH, ... )</line>
+ <line>key = LENGTH, value = value of type 'aq'; 'q' is an enum(INVALID,METER,MILE, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetTimeFormat">
+ <doc>
+ <line>SetTimeFormat = This method sets the time format</line>
+ </doc>
+ <arg name="timeFormat" type="q" direction="in">
+ <doc>
+ <line>timeFormat = enum(INVALID,12H,24H, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetTimeFormat">
+ <doc>
+ <line>GetTimeFormat = This method retrieves the time format</line>
+ </doc>
+ <arg name="timeFormat" type="q" direction="out">
+ <doc>
+ <line>timeFormat = enum(INVALID,12H,24H, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedTimeFormats">
+ <doc>
+ <line>GetSupportedTimeFormats = This method retrieves the supported time formats</line>
+ </doc>
+ <arg name="timeFormatList" type="aq" direction="out">
+ <doc>
+ <line>timeFormatList = array[timeFormat]</line>
+ <line>timeFormat = enum(INVALID,12H,24H, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetCoordinatesFormat">
+ <doc>
+ <line>SetCoordinatesFormat = This method sets the coordinates format</line>
+ </doc>
+ <arg name="coordinatesFormat" type="q" direction="in">
+ <doc>
+ <line>coordinatesFormat = enum(INVALID,DEGREES,MINUTES,SECONDS, ... )</line>
+ <line>DEGREES format = d.dº</line>
+ <line>MINUTES format = dºm.m'</line>
+ <line>SECONDS format = dºm's"</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetCoordinatesFormat">
+ <doc>
+ <line>GetCoordinatesFormat = This method retrieves the coordinates format</line>
+ </doc>
+ <arg name="coordinatesFormat" type="q" direction="out">
+ <doc>
+ <line>coordinatesFormat = enum(INVALID,DEGREES,MINUTES,SECONDS, ... )</line>
+ <line>DEGREES format = d.dº</line>
+ <line>MINUTES format = dºm.m'</line>
+ <line>SECONDS format = dºm's"</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedCoordinatesFormats">
+ <doc>
+ <line>GetSupportedCoordinatesFormats = This method retrieves the supported coordinates formats</line>
+ </doc>
+ <arg name="coordinatesFormatList" type="aq" direction="out">
+ <doc>
+ <line>coordinatesFormatList = array[coordinatesFormat]</line>
+ <line>coordinatesFormat = enum(INVALID,DEGREES,MINUTES,SECONDS, ... )</line>
+ <line>DEGREES format = d.dº</line>
+ <line>MINUTES format = dºm.m'</line>
+ <line>SECONDS format = dºm's"</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetLocale">
+ <doc>
+ <line>SetLocale = This method sets the current language and country</line>
+ </doc>
+ <arg name="languageCode" type="s" direction="in">
+ <doc>
+ <line>languageCode = ISO 639‐3 language code (lower case)</line>
+ </doc>
+ </arg>
+ <arg name="countryCode" type="s" direction="in">
+ <doc>
+ <line>countryCode = ISO 3166‐1 alpha 3 country code (upper case)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetLocale">
+ <doc>
+ <line>GetLocale = This method retrieves the current language and country</line>
+ </doc>
+ <arg name="languageCode" type="s" direction="out">
+ <doc>
+ <line>languageCode = ISO 639‐3 language code (lower case)</line>
+ </doc>
+ </arg>
+ <arg name="countryCode" type="s" direction="out">
+ <doc>
+ <line>countryCode = ISO 3166‐1 alpha 3 country code (upper case)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedLocales">
+ <doc>
+ <line>GetSupportedLocales = This method retrieves the supported languages and countries</line>
+ </doc>
+ <arg name="localeList" type="a(ss)" direction="out">
+ <doc>
+ <line>localeList = array[struct(languageCode,countryCode)]</line>
+ <line>languageCode = ISO 639-3 language code (lower case)</line>
+ <line>countryCode = ISO 3166-1 alpha 3 country code (upper case)</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="ConfigurationChanged">
+ <doc>
+ <line>ConfigurationChanged = This signal is sent to the clients when one or more configuration settings changes</line>
+ </doc>
+ <arg name="changedSettings" type="aq">
+ <doc>
+ <line>changedSettings = array[setting]</line>
+ <line>setting = enum(INVALID,UNITS_OF_MEASUREMENT,LOCALE,TIME_FORMAT,COORDINATES_FORMAT, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ </interface>
+</node>
diff --git a/api/navigation-core/genivi-navigationcore-constants.xml b/api/navigation-core/genivi-navigationcore-constants.xml
new file mode 100755
index 0000000..64993cc
--- /dev/null
+++ b/api/navigation-core/genivi-navigationcore-constants.xml
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="constants.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<constants name="NavigationCore">
+ <version>3.0.0-alpha (23-10-2013)</version>
+ <doc>
+ <line>This document defines the constants used in the NavigationCore APIs</line>
+ </doc>
+
+ <id name="INVALID" value="0x0000" />
+ <id name="DEFAULT" value="0xfffe" />
+ <id name="ALL" value="0xffff" />
+
+ <id name="AVAILABLE" value="0x0001" />
+ <id name="NOT_AVAILABLE" value="0x0002" />
+
+ <id name="TIME_FORMAT" value="0x0003" />
+ <id name="12H" value="0x0004" />
+ <id name="24H" value="0x0005" />
+
+ <id name="COORDINATES_FORMAT" value="0x0006" />
+ <id name="DEGREES" value="0x0007" />
+ <id name="MINUTES" value="0x0008" />
+ <id name="SECONDS" value="0x0009" />
+
+ <id name="TIMESTAMP" value="0x0010" />
+ <id name="TIMEZONE_OFFSET" value="0x0011" />
+ <id name="DAYLIGHT_OFFSET" value="0x0012" />
+
+ <id name="LOCALE" value="0x0025" />
+
+ <id name="UNITS_OF_MEASUREMENT" value="0x0030" />
+ <id name="LENGTH" value="0x0031" />
+ <id name="METER" value="0x0032" />
+ <id name="MILE" value="0x0033" />
+ <id name="KM" value="0x0034" />
+ <id name="YARD" value="0x0035" />
+ <id name="FOOT" value="0x0036" />
+
+ <id name="DISABLED_PROMPT" value="0x0041" />
+ <id name="AUTOMATIC_PROMPT" value="0x0042" />
+ <id name="MANUAL_PROMPT" value="0x0043" />
+
+ <id name="CRUISE" value="0x0050" />
+ <id name="MANEUVER_APPEARED" value="0x0051" />
+ <id name="PRE_ADVICE" value="0x0052" />
+ <id name="ADVICE" value="0x0053" />
+ <id name="PASSED" value="0x0054" />
+
+ <id name="ACTIVE" value="0x0060" />
+ <id name="INACTIVE" value="0x0061" />
+
+ <id name="STRAIGHT_ON" value="0x0070" />
+ <id name="CROSSROAD" value="0x0071" />
+ <id name="ROUNDABOUT" value="0x0072" />
+ <id name="HIGHWAY_ENTER" value="0x0073" />
+ <id name="HIGHWAY_EXIT" value="0x0074" />
+ <id name="HIGHWAY_CHANGE_LANE" value="0x0075" />
+ <id name="DESTINATION" value="0x0076" />
+ <id name="WAYPOINT" value="0x0077" />
+ <id name="TURN" value="0x0078" />
+ <id name="BIFURCATION" value="0x0079" />
+
+ <id name="LEFT" value="0x0080" />
+ <id name="SLIGHT_LEFT" value="0x0081" />
+ <id name="HARD_LEFT" value="0x0082" />
+ <id name="RIGHT" value="0x0083" />
+ <id name="SLIGHT_RIGHT" value="0x0084" />
+ <id name="HARD_RIGHT" value="0x0085" />
+ <id name="UTURN_RIGHT" value="0x0086" />
+ <id name="UTURN_LEFT" value="0x0087" />
+
+ <id name="ALL_MANUAL" value="0x0090" />
+ <id name="ALL_AUTOMATIC" value="0x0091" />
+ <id name="TRAFFIC_MANUAL" value="0x0092" />
+ <id name="OFF_ROUTE_MANUAL" value="0x0093" />
+
+ <id name="LATITUDE" value="0x00a0" />
+ <id name="LONGITUDE" value="0x00a1" />
+ <id name="ALTITUDE" value="0x00a2" />
+
+ <id name="HEADING" value="0x00a3" />
+ <id name="SPEED" value="0x00a4" />
+ <id name="CLIMB" value="0x00a5" />
+
+ <id name="COUNTRY" value="0x00a6" />
+ <id name="STATE" value="0x00a7" />
+ <id name="CITY" value="0x00a8" />
+ <id name="ZIPCODE" value="0x00a9" />
+ <id name="STREET" value="0x00aa" />
+ <id name="HOUSENUMBER" value="0x00ab" />
+ <id name="CROSSING" value="0x00ac" />
+ <id name="DISTRICT" value="0x00ad" />
+ <id name="PHONENUMBER" value="0x00ae" />
+ <id name="POINAME" value="0x00af" />
+ <id name="TOWNCENTER" value="0x00b0" />
+ <id name="LOCATION_INPUT" value="0x00b1" />
+ <id name="FULL_ADDRESS" value="0x00b2" />
+ <id name="COUNTRYCODE" value="0x00b3" />
+ <id name="HOUSENAME" value="0x00b4" />
+
+ <id name="NOT_STARTED" value="0x0c0" />
+ <id name="SEARCHING" value="0x00c1" />
+ <id name="FINISHED" value="0x00c2" />
+
+ <id name="OK" value="0x00d0" />
+ <id name="UNKNOWN" value="0x00d1" />
+ <id name="AMBIGUOUS" value="0x00d2" />
+ <id name="INCONSISTENT" value="0x00d3" />
+
+ <id name="GNSS_FIX_STATUS" value="0x00e0" />
+ <id name="DR_STATUS" value="0x00e1" />
+ <id name="MM_STATUS" value="0x00e2" />
+ <id name="SIMULATION_MODE" value="0x00e3" />
+
+ <id name="MATCH_TYPE" value="0x00f0" />
+ <id name="ON_ROAD" value="0x00f1" />
+ <id name="OFF_ROAD" value="0x00f2" />
+ <id name="ON_FERRY" value="0x00f3" />
+ <id name="IN_TUNNEL" value="0x00f4" />
+ <id name="ON_CARPARK" value="0x00f5" />
+
+ <id name="NO_FIX" value="0x0100" />
+ <id name="TIME_FIX" value="0x0101" />
+ <id name="2D_FIX" value="0x0102" />
+ <id name="3D_FIX" value="0x0103" />
+
+ <id name="SEGMENT_ID" value="0x0110" />
+ <id name="DIRECTION_ON_SEGMENT" value="0x0112" />
+ <id name="DISTANCE_ON_SEGMENT" value="0x0113" />
+
+ <id name="INTERMEDIATE_POINTS" value="0x0120" />
+ <id name="WAYPOINT_TYPE" value="0x0121" />
+ <id name="SOFT_POINT" value="0x0122" />
+ <id name="HARD_POINT" value="0x0123" />
+
+ <id name="CALCULATION_OK" value="0x0130" />
+ <id name="NO_POSITION" value="0x0131" />
+
+ <id name="UNMATCHED_POSITION" value="0x0132" />
+ <id name="UNREACHABLE_DESTINATION" value="0x0133" />
+ <id name="UNFULFILLED_PREFERENCE_MODE" value="0x0134" />
+
+ <id name="LINK-ID" value="0x0140" />
+ <id name="START_LATITUDE" value="0x0141" />
+ <id name="END_LATITUDE" value="0x0142" />
+ <id name="START_LONGITUDE" value="0x0143" />
+ <id name="END_LONGITUDE" value="0x0144" />
+ <id name="START_ALTITUDE" value="0x0145" />
+ <id name="END_ALTITUDE" value="0x0146" />
+ <id name="ROAD_NAME" value="0x0147" />
+ <id name="DISTANCE" value="0x0148" />
+ <id name="TIME" value="0x0149" />
+ <id name="MANEUVER" value="0x014a" />
+ <id name="INSTRUCTION" value="0x014b" />
+ <id name="BORDER_CROSSING" value="0x014c" />
+ <id name="ADDITIONAL_INFORMATION" value="0x014d" />
+ <id name="ROAD_NUMBER" value="0x014e" />
+ <id name="START_OFFSET" value="0x014f" />
+
+ <id name="FASTEST" value="0x0160" />
+ <id name="SHORTEST" value="0x0161" />
+ <id name="ECOLOGICAL" value="0x0162" />
+ <id name="SCENIC" value="0x0163" />
+ <id name="EASY" value="0x0164" />
+ <id name="BALANCED" value="0x0166" />
+ <id name="CHEAPEST" value="0x0167" />
+
+ <id name="FERRY" value="0x0170" />
+ <id name="TOLL_ROADS" value="0x0171" />
+ <id name="TUNNELS" value="0x0172" />
+ <id name="HIGHWAYS_MOTORWAYS" value="0x0173" />
+ <id name="VEHICLE_SIZE_LIMIT" value="0x0174" />
+ <id name="CRIME_AREAS" value="0x0175" />
+
+ <id name="BY_CAR" value="0x0180" />
+ <id name="ON_FOOT" value="0x0181" />
+ <id name="LONG_RANGE_TRAINS" value="0x0182" />
+ <id name="PUBLIC_TRANSPORTATION" value="0x0183" />
+ <id name="BY_BICYCLE" value="0x0184" />
+ <id name="BY_TRUCK" value="0x0185" />
+
+ <id name="ARRIVAL_TIME" value="0x018a" />
+ <id name="ARRIVAL_DATE" value="0x018b" />
+ <id name="DEPARTURE_TIME" value="0x018c" />
+ <id name="DEPARTURE_DATE" value="0x018d" />
+ <id name="TOTAL_TIME" value="0x018e" />
+ <id name="TOTAL_DISTANCE" value="0x018f" />
+
+ <id name="PROHIBIT" value="0x0190" />
+ <id name="AVOID" value="0x0191" />
+ <id name="USE" value="0x0192" />
+ <id name="PREFER" value="0x0193" />
+ <id name="IGNORE" value="0x0194" />
+
+ <id name="TRAFFIC_REALTIME" value="0x0200" />
+
+ <id name="TRAFFIC" value="0x0210" />
+ <id name="OFF_ROUTE" value="0x0211" />
+ <id name="MANUAL" value="0x0212" />
+
+ <id name="SIMULATION_STATUS_NO_SIMULATION" value="0x0220" />
+ <id name="SIMULATION_STATUS_RUNNING" value="0x0221" />
+ <id name="SIMULATION_STATUS_PAUSED" value="0x0222" />
+ <id name="SIMULATION_STATUS_FIXED_POSITION" value="0x0223" />
+
+</constants>
diff --git a/api/navigation-core/genivi-navigationcore-guidance.xml b/api/navigation-core/genivi-navigationcore-guidance.xml
new file mode 100755
index 0000000..7217fb6
--- /dev/null
+++ b/api/navigation-core/genivi-navigationcore-guidance.xml
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.navigationcore.Guidance">
+ <version>3.0.0-alpha (23-10-2013)</version>
+ <doc>
+ <line>Guidance = This interface offers functions that implement the route-guidance functionality of a navigation system</line>
+ </doc>
+ <method name="GetVersion">
+ <doc>
+ <line>GetVersion = This method returns the API version implemented by the server application</line>
+ </doc>
+ <arg name="version" type="(qqqs)" direction="out">
+ <doc>
+ <line>version = struct(major,minor,micro,date)</line>
+ <line>major = when the major changes, then backward compatibility with previous releases is not granted</line>
+ <line>minor = when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added)</line>
+ <line>micro = when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications)</line>
+ <line>date = release date (e.g. 21-06-2011)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="StartGuidance">
+ <doc>
+ <line>StartGuidance = This method starts the guidance for a given route</line>
+ <line>The guidanceStatus will change to ACTIVE</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="StopGuidance">
+ <doc>
+ <line>StopGuidance = This method stops the guidance</line>
+ <line>The guidanceStatus will change to INACTIVE</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetVoiceGuidance">
+ <doc>
+ <line>SetVoiceGuidance = This method switch on/off the voice guidance</line>
+ </doc>
+ <arg name="activate" type="b" direction="in">
+ <doc>
+ <line>activation of the voice guidance</line>
+ </doc>
+ </arg>
+ <arg name="voice" type="s" direction="in">
+ <doc>
+ <line>kind of voice (to be defined)</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Guidance.Error.VoiceNotAllowed">
+ <doc>
+ <line>This error is generated if the voice generation is inactive </line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetGuidanceDetails">
+ <doc>
+ <line>GetGuidanceDetails = This method retrieves guidance information </line>
+ </doc>
+ <arg name="voiceGuidance" type="b" direction="out">
+ <doc>
+ <line>voiceGuidance = if TRUE voice guidance is active</line>
+ </doc>
+ </arg>
+ <arg name="vehicleOnTheRoad" type="b" direction="out">
+ <doc>
+ <line>vehicleOnTheRoad = if TRUE the vehicle is located on the road network</line>
+ </doc>
+ </arg>
+ <arg name="isDestinationReached" type="b" direction="out">
+ <doc>
+ <line>isDestinationReached = if TRUE the destination has been reached</line>
+ </doc>
+ </arg>
+ <arg name="maneuver" type="q" direction="out">
+ <doc>
+ <line>maneuver = enum(INVALID,CRUISE,MANEUVER_APPEARED,PRE_ADVICE,ADVICE,PASSED, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="PlayVoiceManeuver">
+ <doc>
+ <line>PlayVoiceManeuver = This method plays or repeats the last voice guidance</line>
+ </doc>
+ <error name="org.genivi.navigationcore.Guidance.Error.VoiceNotAllowed">
+ <doc>
+ <line>This error is generated if the voice generation is inactive </line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetWaypointInformation">
+ <doc>
+ <line>GetWaypointInformation = This method retrieves the information on the remaining way points of the route. A point can be the final destination as well as a stage defined by the user. The returned waypoints are ordered by their 'number'.</line>
+ </doc>
+ <arg name="requestedNumberOfWaypoints" type="q" direction="in">
+ <doc>
+ <line>requestedNumberOfWaypoints = the number of requested waypoints. If 0, all waypoints will be returned.</line>
+ </doc>
+ </arg>
+ <arg name="numberOfWaypoints" type="q" direction="out">
+ <doc>
+ <line>numberOfWaypoints = the number of retrieved waypoints(NOTE: the number corresponds to the number of elements in the array)</line>
+ </doc>
+ </arg>
+ <arg name="waypointsList" type="a(uuiqnnbq)" direction="out">
+ <doc>
+ <line>array[struct(waypointOffset,travelTime,direction,side,timeZone,daylightSavingTime,isDestination,number)]</line>
+ <line>waypointOffset = the offset of the way point in meters from the beginning of the route</line>
+ <line>travelTime = time to reach the way point in seconds</line>
+ <line>direction = direction of the way point in degree relatively to the North. Range [0:360]</line>
+ <line>side = enum(LEFT,RIGHT,NOT_AVAILABLE)</line>
+ <line>timeZone = time zone of the way point. It is expressed as the time difference from the UTC in minutes</line>
+ <line>daylightSavingTime = daylight saving time of the way point. It is expressed as the time difference from the UTC in minutes</line>
+ <line>isDestination = if TRUE the way point is the destination</line>
+ <line>number = number of the next waypoint (related to the waypoint list, first way point index is 0)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetDestinationInformation">
+ <doc>
+ <line>This method retrieves the information on the final destination</line>
+ </doc>
+ <arg name="offset" type="u" direction="out">
+ <doc>
+ <line>offset = offset of the destination in meter from the beginning of the route</line>
+ </doc>
+ </arg>
+ <arg name="travelTime" type="u" direction="out">
+ <doc>
+ <line>travelTime = time to reach the destination in second</line>
+ </doc>
+ </arg>
+ <arg name="direction" type="i" direction="out">
+ <doc>
+ <line>direction = direction of the destination in degree relatively to the North. Range [0:360]</line>
+ </doc>
+ </arg>
+ <arg name="side" type="q" direction="out">
+ <doc>
+ <line>side = enum(LEFT,RIGHT,NOT_AVAILABLE)</line>
+ </doc>
+ </arg>
+ <arg name="timeZone" type="n" direction="out">
+ <doc>
+ <line>timeZone = time zone of the destination. It is expressed as the time difference from the UTC in minutes</line>
+ </doc>
+ </arg>
+ <arg name="daylightSavingTime" type="n" direction="out">
+ <doc>
+ <line>daylightSavingTime = daylight saving time of the destination. It is expressed as the time difference from the UTC in minutes</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="VehicleLeftTheRoadNetwork">
+ <doc>
+ <line>VehicleLeftTheRoadNetwork = This signal is emitted when the vehicle exits from the road network</line>
+ </doc>
+ </signal>
+ <signal name="GuidanceStatusChanged">
+ <doc>
+ <line>GuidanceStatusChanged = This signal is emitted when the guidance status changes</line>
+ </doc>
+ <arg name="guidanceStatus" type="q">
+ <doc>
+ <line>guidanceStatus = enum(INVALID,ACTIVE,INACTIVE)</line>
+ <line>ACTIVE means that NavigationCore is providing guidance information</line>
+ <line>INACTIVE means that NavigationCore is not providing guidance information</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u">
+ <doc>
+ <line>routeHandle = Active route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value. Should be ignored when guidanceStatus=INACTIVE.</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="WaypointReached">
+ <doc>
+ <line>WaypointReached = This signal is emitted when the destination is reached</line>
+ </doc>
+ <arg name="isDestination" type="b">
+ <doc>
+ <line>isDestination = flag. TRUE means that the way point is the destination</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="ManeuverChanged">
+ <doc>
+ <line>This signal is emitted each time a maneuver event is going</line>
+ </doc>
+ <arg name="maneuver" type="q">
+ <doc>
+ <line>maneuver = enum(INVALID,CRUISE,MANEUVER_APPEARED,PRE_ADVICE,ADVICE,PASSED, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="PositionOnRouteChanged">
+ <doc>
+ <line>PositionOnRouteChanged = This signal is emitted when the position on the route changes</line>
+ </doc>
+ <arg name="offsetOnRoute" type="u">
+ <doc>
+ <line>offsetOnRoute = the current offset on the route in meters from the beginning of the route</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="GetManeuversList">
+ <doc>
+ <line>GetManeuversList = This method retrieves the list of next maneuvers</line>
+ </doc>
+ <arg name="requestedNumberOfManeuvers" type="q" direction="in">
+ <doc>
+ <line>requestedNumberOfManeuvers = the number of requested maneuvers</line>
+ </doc>
+ </arg>
+ <arg name="maneuverOffset" type="u" direction="in">
+ <doc>
+ <line>maneuverOffset = the offset of the first maneuver to retrieve</line>
+ </doc>
+ </arg>
+ <arg name="numberOfManeuvers" type="q" direction="out">
+ <doc>
+ <line>numberOfManeuvers = the number of retrieved maneuvers</line>
+ <line>Note: the number corresponds to the number of elements in the array</line>
+ </doc>
+ </arg>
+ <arg name="maneuversList" type="a(ssqqua(uui(qq)(qs)))" direction="out">
+ <doc>
+ <line>array[struct(roadNumberAfterManeuver,roadNameAfterManeuver,roadPropertyAfterManeuver,drivingSide,offsetOfNextManeuver,array[struct(offsetOfManeuver,travelTime,direction,struct(maneuver,maneuverLength),struct(maneuverDirection,exitNumber))])]</line>
+ <line>roadNumberAfterManeuver = the number of the road after the maneuver (if a road has multiple road numbers, they will be separated by slashes ('/') and combined into one string)</line>
+ <line>roadNameAfterManeuver = the name of the road after the maneuver</line>
+ <line>roadPropertyAfterManeuver = enum(TOLL_ROADS, ... ,DEFAULT)</line>
+ <line>drivingSide = enum(LEFT,RIGHT)</line>
+ <line>offsetOfNextManeuver = the offset of the next maneuver in meters from the beginning of the route (next maneuver is the second maneuver on the route ahead)</line>
+ <line>offsetOfManeuver = the offset of the current maneuver in meters from the beginning of the route (current maneuver is the first maneuver on the route ahead)</line>
+ <line>travelTime = travel time to the basic maneuver in seconds</line>
+ <line>direction = direction of the maneuver in degree relatively to the North. Range [0:360]</line>
+ <line>maneuver = enum(INVALID,STRAIGHT_ON,TURN,CROSSROAD,ROUNDABOUT,HIGHWAY_ENTER,HIGHWAY_EXIT,BIFURCATION,HIGHWAY_CHANGE_LANE,DESTINATION,WAYPOINT)</line>
+ <line>maneuverLength = when maneuver=ROUNDABOUT the length of the route segment between the entry to and the exit from the roundabout; 0 otherwise.</line>
+ <line>maneuverDirection = enum(INVALID,STRAIGHT_ON,LEFT,SLIGHT_LEFT,HARD_LEFT,RIGHT,SLIGHT_RIGHT,HARD_RIGHT,UTURN_RIGHT, UTURN_LEFT)</line>
+ <line>exitNumber = when maneuver=ROUNDABOUT or maneuver=HIGHWAY_EXIT the exit number; null otherwise.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Guidance.Error.NoManeuver">
+ <doc>
+ <line>This error is generated in case there's no maneuver until the destination</line>
+ </doc>
+ </error>
+ </method>
+ <signal name="VehicleLeftTheRoute">
+ <doc>
+ <line>VehicleLeftTheRoute = This signal is emitted when the vehicle has left the route</line>
+ </doc>
+ </signal>
+ <method name="SetRouteCalculationMode">
+ <doc>
+ <line>SetRouteCalculationMode = This method configures the way the navigation application wants the navigation core to behave of reroute trigger</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeCalculationMode" type="q" direction="in">
+ <doc>
+ <line>routeCalculationMode = enum(INVALID,ALL_MANUAL,ALL_AUTOMATIC,TRAFFIC_MANUAL,OFF_ROUTE_MANUAL)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SkipNextManeuver">
+ <doc>
+ <line>SkipNextManeuver = This method allows to jump behind the current maneuver</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Guidance.Error.NoManeuver">
+ <doc>
+ <line>This error is generated in case there's no maneuver until the destination</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetGuidanceStatus">
+ <doc>
+ <line>GetGuidanceStatus = This method retrieves the guidance status</line>
+ </doc>
+ <arg name="guidanceStatus" type="q" direction="out">
+ <doc>
+ <line>guidanceStatus = enum(INVALID,ACTIVE,INACTIVE)</line>
+ <line>ACTIVE means that NavigationCore is providing guidance information</line>
+ <line>INACTIVE means that NavigationCore is not providing guidance information</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="out">
+ <doc>
+ <line>routeHandle = Active route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value. Should be ignored when guidanceStatus=INACTIVE</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetVoiceGuidanceSettings">
+ <doc>
+ <line>SetVoiceGuidanceSettings = This method sets the voice guidance settings</line>
+ </doc>
+ <arg name="promptMode" type="q" direction="in">
+ <doc>
+ <line>mode = enum(INVALID,DISABLED_PROMPT,AUTOMATIC_PROMPT,MANUAL_PROMPT, ... )</line>
+ <line>MANUAL_PROMPT means that a client application can ask the NavigationCore to play the voice prompts</line>
+ <line>AUTOMATIC_PROMPT means that the voice prompts will be requested by NavigationCore automatically</line>
+ <line>DISABLED_PROMPT means that the client application will the voice generator component directly to play the messages (bypassing the NavigationCore)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetVoiceGuidanceSettings">
+ <doc>
+ <line>GetVoiceGuidanceSettings = This method returns the used voice guidance settings</line>
+ </doc>
+ <arg name="promptMode" type="q" direction="out">
+ <doc>
+ <line>mode = enum(INVALID,DISABLED_PROMPT,AUTOMATIC_PROMPT,MANUAL_PROMPT, ... )</line>
+ <line>MANUAL_PROMPT means that a client application can ask the NavigationCore to play the voice prompts</line>
+ <line>AUTOMATIC_PROMPT means that the voice prompts will be requested by NavigationCore automatically</line>
+ <line>DISABLED_PROMPT means that the client application will the voice generator component directly to play the messages (bypassing the NavigationCore)</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="PositionToRouteChanged">
+ <doc>
+ <line>PositionToRouteChanged = This signal is emitted when the vehicle is off-the-road network and either the heading or the distance (or both) to the closest point on the active route changes</line>
+ </doc>
+ <arg name="distance" type="u">
+ <doc>
+ <line>distance = distance in meters to the closest point on the active route</line>
+ </doc>
+ </arg>
+ <arg name="direction" type="i">
+ <doc>
+ <line>direction = direction in degrees relatively to the closest point on the active route. Range [0:360]</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="ActiveRouteChanged">
+ <doc>
+ <line>ActiveRouteChanged = This signal is emitted when the active route changes</line>
+ </doc>
+ <arg name="changeCause" type="q">
+ <doc>
+ <line>changeCause = enum(INVALID,TRAFFIC,OFF_ROUTE,MANUAL,...)</line>
+ </doc>
+ </arg>
+ </signal>
+ </interface>
+</node>
diff --git a/api/navigation-core/genivi-navigationcore-locationinput.xml b/api/navigation-core/genivi-navigationcore-locationinput.xml
new file mode 100755
index 0000000..6c57400
--- /dev/null
+++ b/api/navigation-core/genivi-navigationcore-locationinput.xml
@@ -0,0 +1,531 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.navigationcore.LocationInput">
+ <version>3.0.0-alpha (07-06-2013)</version>
+ <doc>
+ <line>LocationInput = This interface offers functions that implement the location-input functionality of a navigation system</line>
+ </doc>
+ <method name="GetVersion">
+ <doc>
+ <line>GetVersion = This method returns the API version implemented by the server application</line>
+ </doc>
+ <arg name="version" type="(qqqs)" direction="out">
+ <doc>
+ <line> version = struct(major,minor,micro,date)</line>
+ <line> major = when the major version changes, then backward compatibility with previous releases is not granted</line>
+ <line> minor = when the minor version changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added)</line>
+ <line> micro = when the micro version changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications)</line>
+ <line> date = release date (e.g. 21-06-2011)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="CreateLocationInput">
+ <doc>
+ <line>CreateLocationInput = This method creates a new location input and retrieves a handle</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="locationInputHandle" type="u" direction="out">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.LocationInput.Error.NoMoreLocationInputHandles">
+ <doc>
+ <line>This error is generated if no more location input handles are available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="DeleteLocationInput">
+ <doc>
+ <line>DeleteLocationInput = This method deletes a location input and its associated resources</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="locationInputHandle" type="u" direction="in">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.LocationInput.Error.LocationInputNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to delete a location input handle that is not available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetSupportedAddressAttributes">
+ <doc>
+ <line>GetSupportedAddressAttributes = This method retrieves the supported address attributes</line>
+ </doc>
+ <arg name="addressAttributesList" type="aq" direction="out">
+ <doc>
+ <line>addressAttributesList = array[attribute]</line>
+ <line>attribute = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,STATE,CITY,ZIPCODE,STREET,HOUSENUMBER,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetAddress">
+ <doc>
+ <line>SetAddress = This method sets the address to start with for the LocationInput identified by the given handle</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="locationInputHandle" type="u" direction="in">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="address" type="a{qv}" direction="in">
+ <doc>
+ <line>address = array[attribute]</line>
+ <line>attribute = tuple(key,value)</line>
+ <line>key = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... )</line>
+ <line>key = LATITUDE, value = value of type ´d´, that expresses the latitude in format %3.6f. Range[-90:+90]. Example: 48.70901</line>
+ <line>key = LONGITUDE, value = value of type ´d´, that expresses the longitude in format %3.6f. Range[-180:+180]. Example: 9.167898</line>
+ <line>key = ALTITUDE, value = value of type ´i´, that expresses the altitude in meters</line>
+ <line>key = COUNTRY, value = value of type ´s´, that identifies the country name</line>
+ <line>key = COUNTRYCODE, value = value of type ´s´, ISO 3166‐1 alpha 3 country code (upper case)</line>
+ <line>key = CITY, value = value of type ´s´, that identifies the city name</line>
+ <line>key = STREET, value = value of type ´s´, that identifies the street name</line>
+ <line>key = ROAD_NUMBER, value = value of type ´s´, that identifies the road number</line>
+ <line>key = HOUSENUMBER, value = value of type ´s´, that identifies the house number</line>
+ <line>key = HOUSENAME, value = value of type ´s´, that identifies the house name</line>
+ <line>key = CROSSING, value = value of type ´s´, that identifies the crossing</line>
+ <line>key = DISTRICT, value = value of type ´s´, that identifies the district name</line>
+ <line>key = PHONENUMBER, value = value of type ´s´, that identifies a phone number</line>
+ <line>key = POINAME, value = value of type ´s´, that identifies a POI name</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetSelectionCriterion">
+ <doc>
+ <line>SetSelectionCriterion = This method sets the selection criterion for the current speller, search input and the corresponding result-lists for the current session</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="locationInputHandle" type="u" direction="in">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="selectionCriterion" type="q" direction="in">
+ <doc>
+ <line>selectionCriterion = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="Spell">
+ <doc>
+ <line>Spell = This method sends the next spell input for the current session</line>
+ <line>Note: when a spell is started the entries of the search are removed</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="locationInputHandle" type="u" direction="in">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="inputCharacter" type="s" direction="in">
+ <doc>
+ <line>inputString = last input character (UTF-8) (0x08(Backspace) for delete last character, 0x0D(Carriage Return) for delete entire input)</line>
+ </doc>
+ </arg>
+ <arg name="maxWindowSize" type="q" direction="in">
+ <doc>
+ <line>maxWindowSize = maximum number of elements that should be returned as result</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="Search">
+ <doc>
+ <line>Search = This method sends the search input for the current session</line>
+ <line>Note: when a search is started the entries of the spell input are removed</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="locationInputHandle" type="u" direction="in">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="inputString" type="s" direction="in">
+ <doc>
+ <line>inputString = contains the String, that is searched</line>
+ </doc>
+ </arg>
+ <arg name="maxWindowSize" type="q" direction="in">
+ <doc>
+ <line>maxWindowSize = maximum number of elements that should be returned as result</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="CurrentSelectionCriterion">
+ <doc>
+ <line>CurrentSelectionCriterion = This signal notifies the SelectionCriterion for the current speller input or search.</line>
+ <line>Note: when no SelectionCriterion was set or an input was finished, the SelectionCriterion has the value INVALID</line>
+ </doc>
+ <arg name="locationInputHandle" type="u">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="selectionCriterion" type="q">
+ <doc>
+ <line>selectionCriterion = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="SearchStatus">
+ <doc>
+ <line>SearchStatus = This signal updates the search status of the specified session</line>
+ </doc>
+ <arg name="locationInputHandle" type="u">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="statusValue" type="q">
+ <doc>
+ <line>statusValue = enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="SpellResult">
+ <doc>
+ <line>SpellResult = This signal notifies the result of the previous Spell method</line>
+ </doc>
+ <arg name="locationInputHandle" type="u">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="uniqueString" type="s">
+ <doc>
+ <line>uniqueString = unique string derived from spell input (i.e. including auto-completion if applicable)</line>
+ </doc>
+ </arg>
+ <arg name="validCharacters" type="s">
+ <doc>
+ <line>validCharacters = set of (UTF-8 encoded) characters valid for next input (unified in a single string). A Backspace(0x08) is returned if the input character passed to the Spell method was invalid</line>
+ </doc>
+ </arg>
+ <arg name="fullMatch" type="b">
+ <doc>
+ <line>fullMatch = flag indicating whether the value in UniqueCharacters is already a full match for an existing list entry</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="RequestListUpdate">
+ <doc>
+ <line>RequestListUpdate = This method sends a request for more list elements for the current session</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="locationInputHandle" type="u" direction="in">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="offset" type="q" direction="in">
+ <doc>
+ <line>offset = starting offset of the newly requested list elements</line>
+ </doc>
+ </arg>
+ <arg name="maxWindowSize" type="q" direction="in">
+ <doc>
+ <line>maxWindowSize = maximum number of elements that should be returned as result</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="SearchResultList">
+ <doc>
+ <line>SearchResultList = This signal updates the address result list (e.g. after a Search/Spell/Scroll call)</line>
+ </doc>
+ <arg name="locationInputHandle" type="u">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="totalSize" type="q">
+ <doc>
+ <line>totalSize = total size of the result list</line>
+ </doc>
+ </arg>
+ <arg name="windowOffset" type="q">
+ <doc>
+ <line>windowOffset = window offset within the complete list</line>
+ </doc>
+ </arg>
+ <arg name="windowSize" type="q">
+ <doc>
+ <line>windowSize = size of the provided window</line>
+ </doc>
+ </arg>
+ <arg name="resultListWindow" type="aa{qv}">
+ <doc>
+ <line>resultListWindow = array[address]</line>
+ <line>address = array[attribute]</line>
+ <line>attribute = tuple(key,value)</line>
+ <line>key = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... )</line>
+ <line>key = LATITUDE, value = value of type ´d´, that expresses the latitude in format %3.6f. Range [-90:+90]. Example: 48.70901</line>
+ <line>key = LONGITUDE, value = value of type ´d´, that expresses the longitude in format %3.6f. Range [-180:+180]. Example: 9.167898</line>
+ <line>key = ALTITUDE, value = value of type ´i´, that expresses the altitude in meters</line>
+ <line>key = COUNTRY, value = value of type ´s´, that identifies the country name</line>
+ <line>key = COUNTRYCODE, value = value of type ´s´, ISO 3166‐1 alpha 3 country code (upper case)</line>
+ <line>key = CITY, value = value of type ´s´, that identifies the city name</line>
+ <line>key = STREET, value = value of type ´s´, that identifies the street name</line>
+ <line>key = ROAD_NUMBER, value = value of type ´s´, that identifies the road number</line>
+ <line>key = HOUSENUMBER, value = value of type ´s´, that identifies the house number</line>
+ <line>key = HOUSENAME, value = value of type ´s´, that identifies the house name</line>
+ <line>key = CROSSING, value = value of type ´s´, that identifies the crossing</line>
+ <line>key = DISTRICT, value = value of type ´s´, that identifies the district name</line>
+ <line>key = PHONENUMBER, value = value of type ´s´, that identifies a phone number</line>
+ <line>key = POINAME, value = value of type ´s´, that identifies a POI name</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="SearchResultListSizeChanged">
+ <doc>
+ <line>SearchResultListSizeChanged = This signal updates the size of the address result list</line>
+ </doc>
+ <arg name="locationInputHandle" type="u">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="totalSize" type="q">
+ <doc>
+ <line>totalSize = total size of the result list</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="SelectEntry">
+ <doc>
+ <line>SelectEntry = This method triggers selection of a result list entry by index</line>
+ <line>Note: the update of the input content will be notified in signal ContentUpdated</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="locationInputHandle" type="u" direction="in">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="index" type="q" direction="in">
+ <doc>
+ <line>index = absolute list index of the entry to be selected</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetEntry">
+ <doc>
+ <line>GetEntry = This method synchronously gets the address for the given result list entry</line>
+ </doc>
+ <arg name="locationInputHandle" type="u" direction="in">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="index" type="q" direction="in">
+ <doc>
+ <line>index = list index of the entry to be returned</line>
+ </doc>
+ </arg>
+ <arg name="address" type="a{qv}" direction="out">
+ <doc>
+ <line>address = array[attribute]</line>
+ <line>attribute = tuple(key,value)</line>
+ <line>key = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... )</line>
+ <line>key = LATITUDE, value = value of type ´d´, that expresses the latitude in format %3.6f. Range[-90:+90]. Example: 48.70901</line>
+ <line>key = LONGITUDE, value = value of type ´d´, that expresses the longitude in format %3.6f. Range[-180:+180]. Example: 9.167898</line>
+ <line>key = ALTITUDE, value = value of type ´i´, that expresses the altitude in meters</line>
+ <line>key = COUNTRY, value = value of type ´s´, that identifies the country name</line>
+ <line>key = COUNTRYCODE, value = value of type ´s´, ISO 3166‐1 alpha 3 country code (upper case)</line>
+ <line>key = CITY, value = value of type ´s´, that identifies the city name</line>
+ <line>key = STREET, value = value of type ´s´, that identifies the street name</line>
+ <line>key = ROAD_NUMBER, value = value of type ´s´, that identifies the road number</line>
+ <line>key = HOUSENUMBER, value = value of type ´s´, that identifies the house number</line>
+ <line>key = HOUSENAME, value = value of type ´s´, that identifies the house name</line>
+ <line>key = CROSSING, value = value of type ´s´, that identifies the crossing</line>
+ <line>key = DISTRICT, value = value of type ´s´, that identifies the district name</line>
+ <line>key = PHONENUMBER, value = value of type ´s´, that identifies a phone number</line>
+ <line>key = POINAME, value = value of type ´s´, that identifies a POI name</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="ContentUpdated">
+ <doc>
+ <line>ContentUpdated = This signal updates the input content data for the specified session</line>
+ </doc>
+ <arg name="locationInputHandle" type="u">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="guidable" type="b">
+ <doc>
+ <line>guidable = flag indicating whether the current address is guidable</line>
+ </doc>
+ </arg>
+ <arg name="availableSelectionCriteria" type="aq">
+ <doc>
+ <line>availableSelectionCriteria = array of enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... )</line>
+ <line>Note: availableSelectionCriteria indicates the parts of the address that can be changed</line>
+ </doc>
+ </arg>
+ <arg name="address" type="a{qv}">
+ <doc>
+ <line>address = array[attribute]</line>
+ <line>attribute = tuple(key,value)</line>
+ <line>key = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... )</line>
+ <line>key = LATITUDE, value = value of type ´d´, that expresses the latitude in format %3.6f. Range[-90:+90]. Example: 48.70901</line>
+ <line>key = LONGITUDE, value = value of type ´d´, that expresses the longitude in format %3.6f. Range[-180:+180]. Example: 9.167898</line>
+ <line>key = ALTITUDE, value = value of type ´i´, that expresses the altitude in meters</line>
+ <line>key = COUNTRY, value = value of type ´s´, that identifies the country name</line>
+ <line>key = COUNTRYCODE, value = value of type ´s´, ISO 3166‐1 alpha 3 country code (upper case)</line>
+ <line>key = CITY, value = value of type ´s´, that identifies the city name</line>
+ <line>key = STREET, value = value of type ´s´, that identifies the street name</line>
+ <line>key = ROAD_NUMBER, value = value of type ´s´, that identifies the road number</line>
+ <line>key = HOUSENUMBER, value = value of type ´s´, that identifies the house number</line>
+ <line>key = HOUSENAME, value = value of type ´s´, that identifies the house name</line>
+ <line>key = CROSSING, value = value of type ´s´, that identifies the crossing</line>
+ <line>key = DISTRICT, value = value of type ´s´, that identifies the district name</line>
+ <line>key = PHONENUMBER, value = value of type ´s´, that identifies a phone number</line>
+ <line>key = POINAME, value = value of type ´s´, that identifies a POI name</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="ValidateAddress">
+ <doc>
+ <line>ValidateAddress = This method validates an address from different sources than Navigation</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="locationInputHandle" type="u" direction="in">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="inputAddress" type="a{qv}" direction="in">
+ <doc>
+ <line>inputAddress = array[attribute]</line>
+ <line>attribute = tuple(key,value)</line>
+ <line>key = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... )</line>
+ <line>key = LATITUDE, value = value of type ´d´, that expresses the latitude in format %3.6f. Range[-90:+90]. Example: 48.70901</line>
+ <line>key = LONGITUDE, value = value of type ´d´, that expresses the longitude in format %3.6f. Range[-180,+180]. Example: 9.167898</line>
+ <line>key = ALTITUDE, value = value of type ´i´, that expresses the altitude in meters</line>
+ <line>key = COUNTRY, value = value of type ´s´, that identifies the country name</line>
+ <line>key = COUNTRYCODE, value = value of type ´s´, ISO 3166‐1 alpha 3 country code (upper case)</line>
+ <line>key = CITY, value = value of type ´s´, that identifies the city name</line>
+ <line>key = STREET, value = value of type ´s´, that identifies the street name</line>
+ <line>key = ROAD_NUMBER, value = value of type ´s´, that identifies the road number</line>
+ <line>key = HOUSENUMBER, value = value of type ´s´, that identifies the house number</line>
+ <line>key = HOUSENAME, value = value of type ´s´, that identifies the house name</line>
+ <line>key = CROSSING, value = value of type ´s´, that identifies the crossing</line>
+ <line>key = DISTRICT, value = value of type ´s´, that identifies the district name</line>
+ <line>key = PHONENUMBER, value = value of type ´s´, that identifies a phone number</line>
+ <line>key = POINAME, value = value of type ´s´, that identifies a POI name</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="AddressValidationResult">
+ <doc>
+ <line>AddressValidationResult = This signal notifies the validation result of a former ValidateAddress call</line>
+ </doc>
+ <arg name="locationInputHandle" type="u">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="validatedAddressList" type="aa{qv}">
+ <doc>
+ <line>validatedAddressList = array[validatedAddress]</line>
+ <line>validatedAddress = array[attribute]</line>
+ <line>attribute = tuple(key,value)</line>
+ <line>key = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... )</line>
+ <line>key = LATITUDE, value = value of type ´d´, that expresses the latitude in format %3.6f. Range[-90:+90]. Example: 48.70901</line>
+ <line>key = LONGITUDE, value = value of type ´d´, that expresses the longitude in format %3.6f. Range[-180:+180]. Example: 9.167898</line>
+ <line>key = ALTITUDE, value = value of type ´i´, that expresses the altitude in meters</line>
+ <line>key = COUNTRY, value = value of type ´s´, that identifies the country name</line>
+ <line>key = COUNTRYCODE, value = value of type ´s´, ISO 3166‐1 alpha 3 country code (upper case)</line>
+ <line>key = CITY, value = value of type ´s´, that identifies the city name</line>
+ <line>key = STREET, value = value of type ´s´, that identifies the street name</line>
+ <line>key = ROAD_NUMBER, value = value of type ´s´, that identifies the road number</line>
+ <line>key = HOUSENUMBER, value = value of type ´s´, that identifies the house number</line>
+ <line>key = HOUSENAME, value = value of type ´s´, that identifies the house name</line>
+ <line>key = CROSSING, value = value of type ´s´, that identifies the crossing</line>
+ <line>key = DISTRICT, value = value of type ´s´, that identifies the district name</line>
+ <line>key = PHONENUMBER, value = value of type ´s´, that identifies a phone number</line>
+ <line>key = POINAME, value = value of type ´s´, that identifies a POI name</line>
+ </doc>
+ </arg>
+ <arg name="validationStatusList" type="aa{qq}">
+ <doc>
+ <line>validationStatusList = array[validationStatus]</line>
+ <line>validationStatus = array[item]</line>
+ <line>item = tuple(key,value)</line>
+ <line>key = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... )</line>
+ <line>value = enum(INVALID,OK,UNKNOWN,AMBIGUOUS,INCONSISTENT)</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="ReverseGeocode">
+ <doc>
+ <line>ReverseGeocode = This method transforms a geocoordinate into an address</line>
+ <line>Note: the update of the input content will be notified in signal ContentUpdated</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="locationInputHandle" type="u" direction="in">
+ <doc>
+ <line>locationInputHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="coordinate" type="(dd)" direction="in">
+ <doc>
+ <line>coordinate = struct(lat,lon)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]. Example: 48.053250</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]. Example: 8.321000</line>
+ </doc>
+ </arg>
+ </method>
+ </interface>
+</node>
diff --git a/api/navigation-core/genivi-navigationcore-mapmatchedposition.xml b/api/navigation-core/genivi-navigationcore-mapmatchedposition.xml
new file mode 100755
index 0000000..e0da874
--- /dev/null
+++ b/api/navigation-core/genivi-navigationcore-mapmatchedposition.xml
@@ -0,0 +1,379 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.navigationcore.MapMatchedPosition">
+ <version>3.0.0-alpha (23-10-2013)</version>
+ <doc>
+ <line>MapMatchedPosition = This interface offers functions to retrieve the map matched position and to simulate positioning</line>
+ <line></line>
+ <line>If NavigationCore is not in Simulation Mode (Simulation Status is SIMULATION_STATUS_NO_SIMULATION), it is using the EnhancedPosition from the Positioning component.</line>
+ <line>In Simulation Mode it is not using this position, instead it uses FixedPosition or FollowActiveRoute to determine the position.</line>
+ <line>With FixedPosition (Simulation Status is SIMULATION_STATUS_FIXED_POSITION), the position is fixed, unless it is changed by a call to setPosition().</line>
+ <line>This supports use cases like: setting the current car position in a demo mode, or replay a position log file (where setPosition() is called for each logged location).</line>
+ <line>In Follow Active Route mode, NavigationCore is generating positions itself.</line>
+ <line>These positions follow the current active route. When the end of the route is reached, the position jumps back to the starting point of the route.</line>
+ <line>There are two sub states: Running (Simulation Status is SIMULATION_STATUS_RUNNING) and Paused (Simulation Status is SIMULATION_STATUS_PAUSED).</line>
+ <line>By default the ‘driving speed’ will be equal to the free flow speed of each road segment. However a speed factor can be set via the method SetSimulationSpeed.</line>
+ </doc>
+ <method name="GetVersion">
+ <doc>
+ <line>GetVersion = This method returns the API version implemented by the server application</line>
+ </doc>
+ <arg name="version" type="(qqqs)" direction="out">
+ <doc>
+ <line>version = struct(major,minor,micro,date)</line>
+ <line>major = when the major changes, then backward compatibility with previous releases is not granted</line>
+ <line>minor = when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added)</line>
+ <line>micro = when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications)</line>
+ <line>date = release date (e.g. 21-06-2011)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetSimulationMode">
+ <doc>
+ <line>SetSimulationMode = This method activates or deactivates the simulation mode</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="activate" type="b" direction="in">
+ <doc>
+ <line>activate = flag. TRUE means that the simulation mode is activated.</line>
+ <line>The simulation status will be SIMULATION_STATUS_FIXED_POSITION, with the position being the last known position in the NavigationCore.</line>
+ <line>FALSE means that the simulation mode is de-activated. The simulation status will be SIMULATION_STATUS_NO_SIMULATION</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSimulationStatus">
+ <doc>
+ <line>GetSimulationStatus = This method retrieves the simulation status</line>
+ </doc>
+ <arg name="simulationStatus" type="q" direction="out">
+ <doc>
+ <line>simulationStatus = enum(SIMULATION_STATUS_NO_SIMULATION, SIMULATION_STATUS_RUNNING, SIMULATION_STATUS_PAUSED, SIMULATION_STATUS_FIXED_POSITION)</line>
+ <line>SIMULATION_STATUS_NO_SIMULATION means that NavigationCore is using the EnhancedPosition</line>
+ <line>SIMULATION_STATUS_RUNNING means that positions are generated along the active route</line>
+ <line>SIMULATION_STATUS_PAUSED means that the generation of positions along the active route is paused</line>
+ <line>SIMULATION_STATUS_FIXED_POSITION means that the position is fixed.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="AddSimulationStatusListener">
+ <doc>
+ <line> AddSimulationStatusListener = Add this node as a listener to Simulation Status changes.</line>
+ <line>Upon changes a SimulationStatusChanged signal will be received. NavigationCore will only send out a SimulationStatusChanged signal if there is at least one node listening to these changes.</line>
+ </doc>
+ </method>
+ <method name="RemoveSimulationStatusListener">
+ <doc>
+ <line> RemoveSimulationStatusListener = Remove this node as a listener to Simulation Status changes.</line>
+ </doc>
+ </method>
+ <signal name="SimulationStatusChanged">
+ <doc>
+ <line>SimulationStatusChanged = This signal is emitted when the Simulation Status has changed</line>
+ </doc>
+ <arg name="simulationStatus" type="q">
+ <doc>
+ <line>simulationStatus = enum(SIMULATION_STATUS_NO_SIMULATION, SIMULATION_STATUS_RUNNING, SIMULATION_STATUS_PAUSED, SIMULATION_STATUS_FIXED_POSITION)</line>
+ <line>SIMULATION_STATUS_NO_SIMULATION means that NavigationCore is using the EnhancedPosition</line>
+ <line>SIMULATION_STATUS_RUNNING means that positions are generated along the active route</line>
+ <line>SIMULATION_STATUS_PAUSED means that the generation of positions along the active route is paused</line>
+ <line>SIMULATION_STATUS_FIXED_POSITION means that the position is fixed.</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="SetSimulationSpeed">
+ <doc>
+ <line>SetSimulationSpeed = This method sets the speed factor for the simulation mode</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="speedFactor" type="y" direction="in">
+ <doc>
+ <line>speedFactor = speed factor</line>
+ <line>unit is x0.25. Normal speed x1 is 4</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSimulationSpeed">
+ <doc>
+ <line>GetSimulationSpeed = returns the speed factor for the simulation mode</line>
+ </doc>
+ <arg name="speedFactor" type="y" direction="out">
+ <doc>
+ <line>speedFactor = speed factor</line>
+ <line>unit is x0.25. Normal speed x1 is 4</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="AddSimulationSpeedListener">
+ <doc>
+ <line> AddSimulationSpeedListener = Add this node as a listener to simulation speed factor changes.</line>
+ <line>Upon changes a SimulationSpeedChanged signal will be received.</line>
+ <line>NavigationCore will only send out a SimulationSpeedChanged signal if there is at least one node listening to these changes</line>
+ </doc>
+ </method>
+ <method name="RemoveSimulationSpeedListener">
+ <doc>
+ <line> RemoveSimulationSpeedListener = Remove this node as a listener to simulation speed factor changes.</line>
+ </doc>
+ </method>
+ <signal name="SimulationSpeedChanged">
+ <doc>
+ <line>SimulationSpeedChanged = This signal is emitted when the simulation speed factor has changed</line>
+ <line>NavigationCore will only send out a SimulationSpeedChanged signal if there is at least one node listening to these changes</line>
+ </doc>
+ <arg name="speedFactor" type="y">
+ <doc>
+ <line>speedFactor = speed factor</line>
+ <line>unit is x0.25. Normal speed x1 is 4</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="StartSimulation">
+ <doc>
+ <line>StartSimulation = This method starts, or resumes, a Follow Active Route simulation</line>
+ <line>If the current Simulation Status is SIMULATION_STATUS_PAUSED, the simulation is resumed from the current location.</line>
+ <line>Otherwise the simulation is started from the starting point of the route. In both cases the new status will be SIMULATION_STATUS_RUNNING</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="PauseSimulation">
+ <doc>
+ <line>PauseSimulation = This method freezes the current location</line>
+ <line>The new status will be SIMULATION_STATUS_PAUSED</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetPosition">
+ <doc>
+ <line>GetPosition = This method returns the current position</line>
+ </doc>
+ <arg name="valuesToReturn" type="aq" direction="in">
+ <doc>
+ <line>valuesToReturn= array[key]</line>
+ <line>key = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... ,ALL)</line>
+ </doc>
+ </arg>
+ <arg name="position" type="a{qv}" direction="out">
+ <doc>
+ <line>position = dictionary[key,value]</line>
+ <line>dictionary = array of tuples (key,value)</line>
+ <line>key = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... )</line>
+ <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
+ <line>key = LATITUDE, value = value of type 'd', that expresses the latitude of the current position in format %3.6f. Range [-90,+90]. Example: 48.053250</line>
+ <line>key = LONGITUDE, value = value of type 'd', that expresses the longitude of the current position in format %3.6f. Range [-180,+180]. Example: 8.324500</line>
+ <line>key = ALTITUDE, value = value of type 'i', that expresses the altitude above the sea level of the current position in meters</line>
+ <line>key = HEADING, value = value of type 'u', that expresses the course angle in degree (0 = north, 90 = east, 180 = south, 270 = west, no negative values)</line>
+ <line>key = SPEED, value = value of type 'd', that expresses speed measured in m/s. A negative value indicates that the vehicle is moving backwards</line>
+ <line>key = CLIMB, value = value of type 'i', that expresses the inclination measured in degrees</line>
+ <line>key = GNSS_FIX_STATUS, value = value of type 'q', that represents an enum(INVALID,NO_FIX,TIME_FIX,2D_FIX,3D_FIX, ... )</line>
+ <line>key = DR_STATUS, value = value of type 'b', where TRUE means that a dead-reckoning algorithm has been used to calculate the current position</line>
+ <line>key = MM_STATUS, value = value of type 'b', where TRUE means that a map-matching algorithm has been used to calculate the current position</line>
+ <line>key = SIMULATION_MODE, value = value of type 'b', where TRUE means that the current position is simulated</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.MapMatchedPosition.Error.NoPosition">
+ <doc>
+ <line>This error is generated if no position is available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="SetPosition">
+ <doc>
+ <line>SetPosition = This method sets the position to a specific location</line>
+ <line>Independent of the current Simulation Status, the new status will be SIMULATION_STATUS_FIXED_POSITION.</line>
+ <line>This method can be used to replay a position log file (with positions obtained via calls to GetPosition()) by calling this method for each position in the log file.</line>
+ <line>It is of course also possible to call this method just once with e.g. a 'current location' entered by the user (via the HMI).</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="position" type="a{qv}" direction="in">
+ <doc>
+ <line>position = dictionary[key,value]</line>
+ <line>dictionary = array of tuples (key,value)</line>
+ <line>key = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS, ... )</line>
+ <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
+ <line>key = LATITUDE, value = value of type 'd', that expresses the latitude of the current position in format %3.6f. Range [-90,+90]. Example: 48.053250</line>
+ <line>key = LONGITUDE, value = value of type 'd', that expresses the longitude of the current position in format %3.6f. Range [-180,+180]. Example: 8.324500</line>
+ <line>key = ALTITUDE, value = value of type 'i', that expresses the altitude above the sea level of the current position in meters</line>
+ <line>key = HEADING, value = value of type 'u', that expresses the course angle in degree (0 = north, 90 = east, 180 = south, 270 = west, no negative values)</line>
+ <line>key = SPEED, value = value of type 'd', that expresses speed measured in m/s. A negative value indicates that the vehicle is moving backwards</line>
+ <line>key = CLIMB, value = value of type 'i', that expresses the inclination measured in degrees</line>
+ <line>key = GNSS_FIX_STATUS, value = value of type 'q', that represents an enum(INVALID,NO_FIX,TIME_FIX,2D_FIX,3D_FIX, ... )</line>
+ <line>key = DR_STATUS, value = value of type 'b', where TRUE means that a dead-reckoning algorithm has been used to calculate the current position</line>
+ <line>key = MM_STATUS, value = value of type 'b', where TRUE means that a map-matching algorithm has been used to calculate the current position</line>
+ <line>Note that the key SIMULATION_MODE is not allowed here, as it will be true by definition.</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="PositionUpdate">
+ <doc>
+ <line>PositionUpdate = This signal is called to notify a client application of a position change. The update frequency is implementation specific. The maximal allowed frequency is 10Hz</line>
+ </doc>
+ <arg name="changedValues" type="aq">
+ <doc>
+ <line>changedValues = array[value]</line>
+ <line>value = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="GetAddress">
+ <doc>
+ <line>GetAddress = This method returns the current address</line>
+ </doc>
+ <arg name="valuesToReturn" type="aq" direction="in">
+ <doc>
+ <line>valuesToReturn= array[fieldType]</line>
+ <line>key = enum(INVALID,TIMESTAMP,COUNTRY,COUNTRYCODE,CITY,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,TIMEZONE_OFFSET,DAYLIGHT_OFFSET,MATCH_TYPE, ... ,ALL)</line>
+ </doc>
+ </arg>
+ <arg name="address" type="a{qv}" direction="out">
+ <doc>
+ <line>address = dictionary[key,value]</line>
+ <line>dictionary = array of tuples (key,value)</line>
+ <line>key = enum(INVALID,TIMESTAMP,COUNTRY,COUNTRYCODE,CITY,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,TIMEZONE_OFFSET,DAYLIGHT_OFFSET,MATCH_TYPE, ... )</line>
+ <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
+ <line>key = COUNTRY, value = value of type 's', that identifies the country name</line>
+ <line>key = COUNTRYCODE, value = value of type 's', ISO 3166‐1 alpha 3 country code (upper case)</line>
+ <line>key = CITY, value = value of type 's', that identifies the city name</line>
+ <line>key = STREET, value = value of type 's', that identifies the street name</line>
+ <line>key = ROAD_NUMBER, value = value of type ´s´, that identifies the road number</line>
+ <line>key = HOUSENUMBER, value = value of type 's', that identifies the house number</line>
+ <line>key = HOUSENAME, value = value of type ´s´, that identifies the house name</line>
+ <line>key = CROSSING, value = value of type 's', that identifies the crossing</line>
+ <line>key = DISTRICT, value = value of type 's', that identifies the district name</line>
+ <line>key = TIMEZONE_OFFSET, value = value of type 'n', that identifies the timezone offset at the current address</line>
+ <line>key = DAYLIGHT_OFFSET, value = value of type 'n', that identifies the daylight offset at the current address</line>
+ <line>key = MATCH_TYPE, value = value of type 'q', that identifies an enum(INVALID,ON_ROAD,OFF_ROAD,ON_FERRY,IN_TUNNEL,ON_CARPARK, ... )</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.MapMatchedPosition.Error.NoMap">
+ <doc>
+ <line>This error is generated if no map is available</line>
+ </doc>
+ </error>
+ <error name="org.genivi.navigationcore.MapMatchedPosition.Error.OutOfKnownMap">
+ <doc>
+ <line>This error is generated if the vehicle is located in a position outside of the known map</line>
+ </doc>
+ </error>
+ </method>
+ <signal name="AddressUpdate">
+ <doc>
+ <line>AddressUpdate = This signal is called to notify a client application that the current address changed</line>
+ </doc>
+ <arg name="changedValues" type="aq">
+ <doc>
+ <line>changedValues = array[value]</line>
+ <line>value = enum(INVALID,TIMESTAMP,COUNTRY,COUNTRYCODE,CITY,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,TIMEZONE_OFFSET,DAYLIGHT_OFFSET,MATCH_TYPE, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="GetPositionOnSegment">
+ <doc>
+ <line>positionOnSegment = This method returns the vehicle position on a route segment</line>
+ </doc>
+ <arg name="valuesToReturn" type="aq" direction="in">
+ <doc>
+ <line>valuesToReturn= array[fieldType]</line>
+ <line>key = enum(INVALID,TIMESTAMP,SEGMENT_ID,DIRECTION_ON_SEGMENT,DISTANCE_ON_SEGMENT, ... ,ALL)</line>
+ </doc>
+ </arg>
+ <arg name="positionOnSegment" type="a{qv}" direction="out">
+ <doc>
+ <line>positionOnSegment = dictionary[key,value]</line>
+ <line>dictionary = array of tuples (key,value)</line>
+ <line>key = enum(INVALID,TIMESTAMP,SEGMENT_ID,DIRECTION_ON_SEGMENT,DISTANCE_ON_SEGMENT, ... )</line>
+ <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
+ <line>key = SEGMENT_ID, value = value = value of type 'ay', that represents a link-ID in a format whose interpretation is left to the navigationcore</line>
+ <line>key = DIRECTION_ON_SEGMENT, value = value of type 'b', where TRUE means forward and FALSE means backward</line>
+ <line>key = DISTANCE_ON_SEGMENT, value = value of type 'd', that indicates the distance in meter on the segment</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="PositionOnSegmentUpdate">
+ <doc>
+ <line>PositionOnSegmentUpdate = This signal is called to notify the client that the vehicle position on the route segment changed</line>
+ </doc>
+ <arg name="changedValues" type="aq">
+ <doc>
+ <line>changedValues = array[value]</line>
+ <line>value = enum(INVALID,TIMESTAMP,SEGMENT_ID,DIRECTION_ON_SEGMENT,DISTANCE_ON_SEGMENT, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="GetStatus">
+ <doc>
+ <line>GetStatus = This method returns the current status</line>
+ </doc>
+ <arg name="valuesToReturn" type="aq" direction="in">
+ <doc>
+ <line>valuesToReturn = array[fieldType]</line>
+ <line>key = enum(INVALID,TIMESTAMP,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... ,ALL)</line>
+ </doc>
+ </arg>
+ <arg name="status" type="a{qv}" direction="out">
+ <doc>
+ <line>status = dictionary[key,value]</line>
+ <line>dictionary = array of tuples (key,value)</line>
+ <line>key = enum(INVALID,TIMESTAMP,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... )</line>
+ <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
+ <line>key = GNSS_FIX_STATUS, value = value of type 'q', that represents an enum(INVALID,NO_FIX,TIME_FIX,2D_FIX,3D_FIX, ... )</line>
+ <line>key = DR_STATUS, value = value of type 'b', where TRUE means that a dead-reckoning algorithm has been used to calculate the current position</line>
+ <line>key = MM_STATUS, value = value of type 'b', where TRUE means that a map-matching algorithm has been used to calculate the current position</line>
+ <line>key = SIMULATION_MODE, value = value of type 'b', where TRUE means that the current position is simulated</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="StatusUpdate">
+ <doc>
+ <line>StatusUpdate = This signal is emitted to notifiy a client application that the current status changed</line>
+ </doc>
+ <arg name="changedValues" type="aq">
+ <doc>
+ <line>changedValues = array[value]</line>
+ <line>value = enum(INVALID,TIMESTAMP,GNSS_FIX_STATUS,DR_STATUS,MM_STATUS,SIMULATION_MODE, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="OffRoadPositionChanged">
+ <doc>
+ <line>OffroadPositionChanged = This signal is emitted when the heading and the distance to the closest point on the road network changes</line>
+ </doc>
+ <arg name="distance" type="u">
+ <doc>
+ <line>distance = distance in meters to the closest point on the road network</line>
+ </doc>
+ </arg>
+ <arg name="direction" type="i">
+ <doc>
+ <line>direction = direction in degrees relatively to the closest point on the road network. Range [0:360]</line>
+ </doc>
+ </arg>
+ </signal>
+ </interface>
+</node>
diff --git a/api/navigation-core/genivi-navigationcore-routing.xml b/api/navigation-core/genivi-navigationcore-routing.xml
new file mode 100755
index 0000000..841fd60
--- /dev/null
+++ b/api/navigation-core/genivi-navigationcore-routing.xml
@@ -0,0 +1,830 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.navigationcore.Routing">
+ <version>3.0.0-alpha (07-06-2013)</version>
+ <doc>
+ <line>Routing = This interface offers functions that implement the routing functionality of a navigation system</line>
+ </doc>
+ <method name="GetVersion">
+ <doc>
+ <line>GetVersion = This method returns the API version implemented by the server application</line>
+ </doc>
+ <arg name="version" type="(qqqs)" direction="out">
+ <doc>
+ <line>version = struct(major,minor,micro,date)</line>
+ <line>major = when the major changes, then backward compatibility with previous releases is not granted</line>
+ <line>minor = when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added)</line>
+ <line>micro = when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications)</line>
+ <line>date = release date (e.g. 21-06-2011)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="CreateRoute">
+ <doc>
+ <line>CreateRoute = This method creates a route</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="out">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Routing.Error.NoMoreRouteHandles">
+ <doc>
+ <line>This error is generated if no more routing handles are available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="DeleteRoute">
+ <doc>
+ <line>DeleteRoute = This method deletes a route and its associated resources</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Routing.Error.RouteNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to delete a route handle that is not available</line>
+ </doc>
+ </error>
+ <error name="org.genivi.navigationcore.Routing.Error.OperationNotAllowed">
+ <doc>
+ <line>This error is generated if an application tries to delete a route which is not created manually (e.g. an alternative route calculated in the background)</line>
+ </doc>
+ </error>
+ </method>
+ <signal name="RouteDeleted">
+ <doc>
+ <line>RouteDeleted = This signal is emitted to inform clients that the current route has been deleted</line>
+ </doc>
+ <arg name="routeHandle" type="u">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="SetCostModel">
+ <doc>
+ <line>SetCostModel = This method sets the cost model</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="costModel" type="q" direction="in">
+ <doc>
+ <line>costModel = enum(INVALID,FASTEST,SHORTEST,ECOLOGICAL,SCENIC,EASY,OFF_ROAD,BALANCED,CHEAPEST, ... )</line>
+ <line>FASTEST = least time to reach the destination </line>
+ <line>SHORTEST = shortest distance to destination </line>
+ <line>ECOLOGICAL = least fuel or electric charge to destination </line>
+ <line>SCENIC = most scenic route to destination </line>
+ <line>EASY = least number of turns to reach the destination </line>
+ <line>OFF_ROAD = a distance-optimised route between points that are not covered by road mappings</line>
+ <line>BALANCED = trade-off between FASTEST and SHORTEST (e.g. 50% FASTEST and 50% SHORTEST) </line>
+ <line>CHEAPEST = least fuel or electric charge to destination taking pricing into account </line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Routing.Error.OperationNotAllowed">
+ <doc>
+ <line>This error is generated if an application tries to set a cost model for a route which is not created manually (e.g. an alternative route calculated in the background)</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetCostModel">
+ <doc>
+ <line>GetCostModel = This method retrieves the selected cost model</line>
+ </doc>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="costModel" type="q" direction="out">
+ <doc>
+ <line>costModel = enum(INVALID,FASTEST,SHORTEST,ECOLOGICAL,SCENIC,EASY,OFF_ROAD,BALANCED,CHEAPEST, ... )</line>
+ <line>FASTEST = least time to reach the destination </line>
+ <line>SHORTEST = shortest distance to destination </line>
+ <line>ECOLOGICAL = least fuel or electric charge to destination </line>
+ <line>SCENIC = most scenic route to destination </line>
+ <line>EASY = least number of turns to reach the destination </line>
+ <line>OFF_ROAD = a distance-optimised route between points that are not covered by road mappings</line>
+ <line>BALANCED = trade-off between FASTEST and SHORTEST (e.g. 50% FASTEST and 50% SHORTEST) </line>
+ <line>CHEAPEST = least fuel or electric charge to destination taking pricing into account </line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedCostModels">
+ <doc>
+ <line>GetSupportedCostModels = This method retrieves a list of supported cost models</line>
+ </doc>
+ <arg name="costModelsList" type="aq" direction="out">
+ <doc>
+ <line>costModelsList = array[costModel]</line>
+ <line>costModel = enum(INVALID,FASTEST,SHORTEST,ECOLOGICAL,SCENIC,EASY,OFF_ROAD,BALANCED,CHEAPEST, ... )</line>
+ <line>FASTEST = least time to reach the destination </line>
+ <line>SHORTEST = shortest distance to destination </line>
+ <line>ECOLOGICAL = least fuel or electric charge to destination </line>
+ <line>SCENIC = most scenic route to destination </line>
+ <line>EASY = least number of turns to reach the destination </line>
+ <line>OFF_ROAD = a distance-optimised route between points that are not covered by road mappings</line>
+ <line>BALANCED = trade-off between FASTEST and SHORTEST (e.g. 50% FASTEST and 50% SHORTEST) </line>
+ <line>CHEAPEST = least fuel or electric charge to destination taking pricing into account </line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetRoutePreferences">
+ <doc>
+ <line>SetRoutePreferences = This method sets a list of route preferences</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="countryCode" type="s" direction="in">
+ <doc>
+ <line>countryCode = ISO 3166‐1 alpha 3 country code (upper case)</line>
+ <line>If this argument is an empty string, it means that the preferences apply to all countries</line>
+ </doc>
+ </arg>
+ <arg name="roadPreferenceList" type="a(qq)" direction="in">
+ <doc>
+ <line>roadPreferenceList = array[preference]</line>
+ <line>preference = struct(preferenceMode,preferenceSource)</line>
+ <line>preferenceMode = enum(PROHIBIT,AVOID,USE,PREFER)</line>
+ <line>preferenceMode = PROHIBIT. Routing module must not calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = AVOID. Routing module should not calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = USE. Routing module should calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = PREFER. Routing module should calculate a planned route including as much as possible sections matching given avoidance source.</line>
+ <line>preferenceSource = enum(FERRY,TOLL_ROADS,TUNNELS,HIGHWAYS_MOTORWAYS,VEHICLE_SIZE_LIMIT,CRIME_AREAS)</line>
+ </doc>
+ </arg>
+ <arg name="conditionPreferenceList" type="a(qq)" direction="in">
+ <doc>
+ <line>conditionPreferenceList = array[preference]</line>
+ <line>preference = struct(preferenceMode,preferenceSource)</line>
+ <line>preferenceMode = enum(USE,IGNORE)</line>
+ <line>preferenceSource = enum(TRAFFIC_REALTIME, ...)</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Routing.Error.OperationNotAllowed">
+ <doc>
+ <line>This error is generated if an application tries to set route preferences for a route which is not created manually (e.g. an alternative route calculated in the background)</line>
+ </doc>
+ </error>
+ <error name="org.genivi.navigationcore.Routing.Error.RoutePreferenceNotSupported">
+ <doc>
+ <line>This error is generated if an application tries to set a route preference which is not supported (e.g. (USE,CRIME_AREA)). The preferences which are not supported are product dependent.</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetRoutePreferences">
+ <doc>
+ <line>GetRoutePreferences = This method retrieves a list of selected route preferences</line>
+ </doc>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="countryCode" type="s" direction="in">
+ <doc>
+ <line>countryCode = ISO 3166‐1 alpha 3 country code (upper case)</line>
+ <line>If this argument is an empty string, it means that the preferences apply to all countries</line>
+ </doc>
+ </arg>
+ <arg name="roadPreferenceList" type="a(qq)" direction="out">
+ <doc>
+ <line>roadPreferenceList = array[preference]</line>
+ <line>preference = struct(preferenceMode,preferenceSource)</line>
+ <line>preferenceMode = enum(PROHIBIT,AVOID,USE,PREFER)</line>
+ <line>preferenceMode = PROHIBIT. Routing module must not calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = AVOID. Routing module should not calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = USE. Routing module should calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = PREFER. Routing module should calculate a planned route including as much as possible sections matching given avoidance source.</line>
+ <line>preferenceSource = enum(FERRY,TOLL_ROADS,TUNNELS,HIGHWAYS_MOTORWAYS,VEHICLE_SIZE_LIMIT,CRIME_AREAS)</line>
+ </doc>
+ </arg>
+ <arg name="conditionPreferenceList" type="a(qq)" direction="out">
+ <doc>
+ <line>conditionPreferenceList = array[preference]</line>
+ <line>preference = struct(preferenceMode,preferenceSource)</line>
+ <line>preferenceMode = enum(USE,IGNORE)</line>
+ <line>preferenceSource = enum(TRAFFIC_REALTIME, ...)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedRoutePreferences">
+ <doc>
+ <line>GetSupportedRoutePreferences = This method retrieves a list of supported route preferences</line>
+ </doc>
+ <arg name="routePreferencesList" type="a(qq)" direction="out">
+ <doc>
+ <line>routePreferencesList = array[preference]</line>
+ <line>preference = struct(preferenceMode,preferenceSource)</line>
+ <line>preferenceMode = enum(PROHIBIT,AVOID,USE,PREFER)</line>
+ <line>preferenceMode = PROHIBIT. Routing module must not calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = AVOID. Routing module should not calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = USE. Routing module should calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = PREFER. Routing module should calculate a planned route including as much as possible sections matching given avoidance source.</line>
+ <line>preferenceSource = enum(FERRY,TOLL_ROADS,TUNNELS,HIGHWAYS_MOTORWAYS,VEHICLE_SIZE_LIMIT,CRIME_AREAS)</line>
+ </doc>
+ </arg>
+ <arg name="conditionPreferenceList" type="a(qq)" direction="out">
+ <doc>
+ <line>conditionPreferenceList = array[preference]</line>
+ <line>preference = struct(preferenceMode,preferenceSource)</line>
+ <line>preferenceMode = enum(USE,IGNORE)</line>
+ <line>preferenceSource = enum(TRAFFIC_REALTIME, ...)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetRouteSchedule">
+ <doc>
+ <line> SetRouteSchedule = This method sets the time schedule for the route to be calculated</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeSchedule" type="a{qu}" direction="in">
+ <doc>
+ <line>routeSchedule = array[detail]</line>
+ <line>detail = dictionary[key,value]</line>
+ <line>dictionary = array of tuples (key,value)</line>
+ <line>key = enum(ARRIVAL_TIME, ARRIVAL_DATE,DEPARTURE_TIME, DEPARTURE_DATE)</line>
+ <line>key = ARRIVAL_TIME, value of type 'u', that represents the arrival time is expressed in seconds since mid-night (UTC)</line>
+ <line>key = ARRIVAL_DATE, value of type 'u', that represents the arrival date is either a calendar date (the number of days since 1 Jan 2000) or a weekday indication. For weekday indication the values 0 till 6 are used (0 = Saturday, 1 = Sunday, 2 = Monday, ..., 6 = Friday)</line>
+ <line>key = DEPARTURE_TIME, value of type 'u', that represents the departure time is expressed in seconds since mid-night (UTC)</line>
+ <line>key = DEPARTURE_DATE, value of type 'u', that represents the departure date is either a calendar date (the number of days since 1 Jan 2000) or a weekday indication. For weekday indication the values 0 till 6 are used (0 = Saturday, 1 = Sunday, 2 = Monday, ..., 6 = Friday)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetRouteSchedule">
+ <doc>
+ <line> GetRouteSchedule = This method gets the time schedule for the route to be calculated</line>
+ </doc>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="valuesToReturn" type="aq" direction="in">
+ <doc>
+ <line>valuesToReturn= array[value]</line>
+ <line>value= enum(ARRIVAL_TIME, ARRIVAL_DATE,DEPARTURE_TIME, DEPARTURE_DATE)</line>
+ </doc>
+ </arg>
+ <arg name="routeSchedule" type="a{qu}" direction="out">
+ <doc>
+ <line> routeSchedule = array[detail]</line>
+ <line>detail = dictionary[key,value]</line>
+ <line>dictionary = array of tuples (key,value)</line>
+ <line>key = enum(ARRIVAL_TIME, ARRIVAL_DATE,DEPARTURE_TIME, DEPARTURE_DATE)</line>
+ <line>key = ARRIVAL_TIME, value of type 'u', that represents the arrival time is expressed in seconds since mid-night (UTC)</line>
+ <line>key = ARRIVAL_DATE, value of type 'u', that represents the arrival date is either a calendar date (the number of days since 1 Jan 2000) or a weekday indication. For weekday indication the values 0 till 6 are used (0 = Saturday, 1 = Sunday, 2 = Monday, ..., 6 = Friday)</line>
+ <line>key = DEPARTURE_TIME, value of type 'u', that represents the departure time is expressed in seconds since mid-night (UTC)</line>
+ <line>key = DEPARTURE_DATE, value of type 'u', that represents the departure date is either a calendar date (the number of days since 1 Jan 2000) or a weekday indication. For weekday indication the values 0 till 6 are used (0 = Saturday, 1 = Sunday, 2 = Monday, ..., 6 = Friday)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetTransportationMeans">
+ <doc>
+ <line>SetTransportationMeans = This method sets a list of means of transportation that must be considered when calculating a route</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="transportationMeansList" type="aq" direction="in">
+ <doc>
+ <line>transportationMeansList = array[transportationMeans]</line>
+ <line>transportationMeans = enum(INVALID,BY_CAR,ON_FOOT,LONG_RANGE_TRAINS,PUBLIC_TRANSPORTATION,BY_BICYCLE,BY_TRUCK, ... )</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Routing.Error.OperationNotAllowed">
+ <doc>
+ <line>This error is generated if an application tries to set transportation means for a route which is not created manually (e.g. an alternative route calculated in the background)</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetTransportationMeans">
+ <doc>
+ <line>GetTransportationMeans = This method retrieves the selected means of transportation</line>
+ </doc>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="transportationMeansList" type="aq" direction="out">
+ <doc>
+ <line>transportationMeansList = array[transportationMeans]</line>
+ <line>transportationMeans = enum(INVALID,BY_CAR,ON_FOOT,LONG_RANGE_TRAINS,PUBLIC_TRANSPORTATION,BY_BICYCLE,BY_TRUCK, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetSupportedTransportationMeans">
+ <doc>
+ <line>GetSupportedTransportationMeans = This method retrieves a list of supported means of transportation</line>
+ </doc>
+ <arg name="transportationMeansList" type="aq" direction="out">
+ <doc>
+ <line>transportationMeansList = array[transportationMeans]</line>
+ <line>transportationMeans = enum(INVALID,BY_CAR,ON_FOOT,LONG_RANGE_TRAINS,PUBLIC_TRANSPORTATION,BY_BICYCLE,BY_TRUCK, ... )</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetExcludedAreas">
+ <doc>
+ <line>SetExcludedAreas = This method sets the areas to be excluded when calculating a route</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="excludedAreas" type="aa(dd)" direction="in">
+ <doc>
+ <line>excludedAreas = array[array(lat,lon)]</line>
+ <line>excludedAreas = array[convexPolygon]</line>
+ <line>convexPolygon = array[lat,lon] </line>
+ <line>lat = latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>lon = longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250</line>
+ <line>Note: a polygon must have at least 3 vertexes</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Routing.Error.OperationNotAllowed">
+ <doc>
+ <line>This error is generated if an application tries to set excluded areas for a route which is not created manually (e.g. an alternative route calculated in the background)</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetExcludedAreas">
+ <doc>
+ <line>GetExcludedAreas = This method retrieves the areas to be excluded when calculating a route</line>
+ </doc>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="excludedAreas" type="aa(dd)" direction="out">
+ <doc>
+ <line>excludedAreas = array[array(lat,lon)]</line>
+ <line>excludedAreas = array[convexPolygon]</line>
+ <line>convexPolygon = array[lat,lon]</line>
+ <line>lat = latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>lon = longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250</line>
+ <line>Note: pass an empty array to remove previously selected excluded areas</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetWaypoints">
+ <doc>
+ <line>SetWaypoints = This method sets a list of waypoints</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="startFromCurrentPosition" type="b" direction="in">
+ <doc>
+ <line>startFromCurrentPosition = flag indicating if the current position is used as starting point</line>
+ </doc>
+ </arg>
+ <arg name="waypointsList" type="aa{qv}" direction="in">
+ <doc>
+ <line>waypointsList = array[waypoint]</line>
+ <line>waypoint = tuple (key,value)</line>
+ <line>key = enum(INVALID,WAYPOINT_TYPE,LOCATION_INPUT,LATITUDE,LONGITUDE,ALTITUDE, ... )</line>
+ <line>key = WAYPOINT_TYPE, value = value of type 'q', that represents an enum(INVALID,SOFT_POINT,HARD_POINT, ... )</line>
+ <line>key = LOCATION_INPUT, value = value of type 'ay'. This is a byte array whose interpretation is left to the navigation core</line>
+ <line>key = LATITUDE, value = value of type 'd', that expresses the latitude of the starting point in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>key = LONGITUDE, value = value of type 'd', that expresses the longitude of the starting point in format %3.6f. Range [-180:+180]. Example: 8.324500</line>
+ <line>key = ALTITUDE, value = value of type 'i', that expresses the altitude of the starting point in meters</line>
+ <line>Note: if the flag StartFromCurrentPosition=true, then at least one waypoint must be provided (destination)</line>
+ <line>Note: if the flag StartFromCurrentPosition=false, then at least two waypoints must be provided (starting point and destination)</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Routing.Error.WaypointCannotBeChanged">
+ <doc>
+ <line>This error is sent when a client application tries to change the waypoints while the route guidance is active</line>
+ </doc>
+ </error>
+ <error name="org.genivi.navigationcore.Routing.Error.TooManyWaypoints">
+ <doc>
+ <line>This error is sent when a client application tries to set a number of waypoints that exceeds the system capabilities</line>
+ </doc>
+ </error>
+ <error name="org.genivi.navigationcore.Routing.Error.OperationNotAllowed">
+ <doc>
+ <line>This error is generated if an application tries to set waypoints for a route which is not created manually (e.g. an alternative route calculated in the background)</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetWaypoints">
+ <doc>
+ <line>GetWaypoints = This method retrieves a list of waypoints</line>
+ </doc>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="startFromCurrentPosition" type="b" direction="out">
+ <doc>
+ <line>startFromCurrentPosition = flag indicating if the current position is used as starting point</line>
+ </doc>
+ </arg>
+ <arg name="waypointsList" type="aa{qv}" direction="out">
+ <doc>
+ <line>waypointsList = array[waypoint]</line>
+ <line>waypoint = tuple (key,value)</line>
+ <line>key = enum(INVALID,WAYPOINT_TYPE,LOCATION_INPUT,LATITUDE,LONGITUDE,ALTITUDE, ... )</line>
+ <line>key = WAYPOINT_TYPE, value = value of type 'q', that represents an enum(INVALID,SOFT_POINT,HARD_POINT, ... )</line>
+ <line>key = LOCATION_INPUT, value = value of type 'ay'. This is a byte array whose interpretation is left to the navigation core</line>
+ <line>key = LATITUDE, value = value of type 'd', that expresses the latitude of the starting point in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>key = LONGITUDE, value = value of type 'd', that expresses the longitude of the starting point in format %3.6f. Range [-180:+180]. Example: 8.324500</line>
+ <line>key = ALTITUDE, value = value of type 'i', that expresses the altitude of the starting point in meters</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="CalculateRoute">
+ <doc>
+ <line>CalculateRoute = This method starts a route calculation</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Routing.Error.OperationNotAllowed">
+ <doc>
+ <line>This error is generated if an application tries to calculate a route which is not created manually (e.g. an alternative route calculated in the background)</line>
+ </doc>
+ </error>
+ </method>
+ <method name="CancelRouteCalculation">
+ <doc>
+ <line>CancelRouteCalculation = This method cancels a route calculation</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="RouteCalculationCancelled">
+ <doc>
+ <line>RouteCalculationCancelled = This signal informs a client that a route calculation was cancelled</line>
+ </doc>
+ <arg name="routeHandle" type="u">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="RouteCalculationSuccessful">
+ <doc>
+ <line>RouteCalculationSuccessful = This signal informs a client that a route calculation was successful</line>
+ </doc>
+ <arg name="routeHandle" type="u">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="unfullfilledPreferences" type="a{qq}">
+ <doc>
+ <line>unfullfilledPreferences = array[preference]</line>
+ <line>preference = tuple(preferenceMode,preferenceSource)</line>
+ <line>preferenceMode = enum(PROHIBIT,AVOID,USE,PREFER)</line>
+ <line>preferenceMode = PROHIBIT. Routing module must not calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = AVOID. Routing module should not calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = USE. Routing module should calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = PREFER. Routing module should calculate a planned route including as much as possible sections matching given avoidance source.</line>
+ <line>preferenceSource = enum(FERRY,TOLL_ROADS,TUNNELS,HIGHWAYS_MOTORWAYS,VEHICLE_SIZE_LIMIT,CRIME_AREAS)</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="RouteCalculationFailed">
+ <doc>
+ <line>RouteCalculationFailed = This signal informs a client that a route calculation failed</line>
+ </doc>
+ <arg name="routeHandle" type="u">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="errorCode" type="q">
+ <doc>
+ <line>errorCode = enum(INVALID,UNMATCHED_POSITION,UNREACHABLE_DESTINATION,UNFULFILLED_PREFERENCE_MODE, ... )</line>
+ <line>errorCode = UNFULFILLED_PREFERENCE_MODE. Refer to unfullfilledPreferences to see which routing preferences could not be met causing routing calculation to fail; for any other value the argument unfulfilledPreferences should be ignored. </line>
+ </doc>
+ </arg>
+ <arg name="unfullfilledPreferences" type="a{qq}">
+ <doc>
+ <line>unfullfilledPreferences = array[preference]</line>
+ <line>preference = tuple(preferenceMode,preferenceSource)</line>
+ <line>preferenceMode = enum(PROHIBIT,AVOID,USE,PREFER)</line>
+ <line>preferenceMode = PROHIBIT. Routing module must not calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = AVOID. Routing module should not calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = USE. Routing module should calculate a planned route including sections matching given avoidance source.</line>
+ <line>preferenceMode = PREFER. Routing module should calculate a planned route including as much as possible sections matching given avoidance source.</line>
+ <line>preferenceSource = enum(FERRY,TOLL_ROADS,TUNNELS,HIGHWAYS_MOTORWAYS,VEHICLE_SIZE_LIMIT,CRIME_AREAS)</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="RouteCalculationProgressUpdate">
+ <doc>
+ <line>RouteCalculationProgressUpdate = This signal informs a client about a route calculation progress</line>
+ </doc>
+ <arg name="routeHandle" type="u">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="status" type="q">
+ <doc>
+ <line>status = enum(INVALID,CALCULATION_OK,NO_POSITION, ... )</line>
+ </doc>
+ </arg>
+ <arg name="percentage" type="y">
+ <doc>
+ <line>percentage = progress status. Range [0:100]</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="CalculateRoutes">
+ <doc>
+ <line>CalculateRoutes = This method allows a client to calculate alternative routes that differs from a list of already calculated routes</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="calculatedRoutesList" type="au" direction="in">
+ <doc>
+ <line>calculatedRoutesList = array[calculatedRoute]</line>
+ <line>calculatedRoute = Handle identifying an already calculated route. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="alternativeRoutesList" type="au" direction="out">
+ <doc>
+ <line>alternativeRoutesList = array[alternativeRoute]</line>
+ <line>alternativeRoute = Handle identifying an alternative route. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Routing.Error.OperationNotAllowed">
+ <doc>
+ <line>This error is generated if an application tries to calculate an alternative to a route which is not created manually (e.g. an alternative route calculated in the background)</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetRouteSegments">
+ <doc>
+ <line>GetRouteSegments = This method retrieves a list of segments for a given route starting from the one closest to the current position to the one closest to the destination</line>
+ </doc>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="detailLevel" type="n" direction="in">
+ <doc>
+ <line>detailLevel = detail level</line>
+ </doc>
+ </arg>
+ <arg name="valuesToReturn" type="aq" direction="in">
+ <doc>
+ <line>valuesToReturn= array[key]</line>
+ <line>key = enum(INVALID,LINK-ID,INTERMEDIATE_POINTS,START_LATITUDE,START_LONGITUDE,START_ALTITUDE,</line>
+ <line>END_LATITUDE,END_LONGITUDE,END_ALTITUDE,ROAD_NAME,ROAD_NUMBER,DISTANCE,TIME,MANEUVER,INSTRUCTION,</line>
+ <line>BORDER_CROSSING,TIME_ZONE,DAYLIGHT_SAVING_TIME,ADDITIONAL_INFORMATION,HIGHWAY_EXIT, ... , ALL)</line>
+ </doc>
+ </arg>
+ <arg name="numberOfSegments" type="u" direction="in">
+ <doc>
+ <line>numberOfSegments = number of segments to be retrieved</line>
+ </doc>
+ </arg>
+ <arg name="offset" type="u" direction="in">
+ <doc>
+ <line>offset = offset from the beginning of the list</line>
+ </doc>
+ </arg>
+ <arg name="totalNumberOfSegments" type="u" direction="out">
+ <doc>
+ <line>totalNumberOfSegments = total number of segments</line>
+ </doc>
+ </arg>
+ <arg name="routeSegments" type="aa{qv}" direction="out">
+ <doc>
+ <line>routeSegments = array[segment]</line>
+ <line>segment = tuple(key,value)</line>
+ <line>Note: a segment is the shortest navigable stretch of a route (e.g. the stretch between two adjacent junctions)</line>
+ <line>key = enum(INVALID,LINK-ID,INTERMEDIATE_POINTS,START_LATITUDE,START_LONGITUDE,START_ALTITUDE,</line>
+ <line>END_LATITUDE,END_LONGITUDE,END_ALTITUDE,ROAD_NAME,ROAD_NUMBER,DISTANCE,TIME,MANEUVER,INSTRUCTION,</line>
+ <line>BORDER_CROSSING,TIME_ZONE,DAYLIGHT_SAVING_TIME,ADDITIONAL_INFORMATION,HIGHWAY_EXIT, ... )</line>
+ <line>key = LINK-ID, value = value of type 'ay', that represents a link-ID in a format whose interpretation is left to the navigationcore</line>
+ <line>key = START_LATITUDE, value = value of type 'd', that expresses the latitude of the starting point in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>key = END_LATITUDE, value = value of type 'd', that expresses the latitude of the ending point in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>Note: END_LATITUDE can be omitted, if it coincides with the latitude of the start point of the next segment</line>
+ <line>key = START_LONGITUDE, value = value of type 'd', that expresses the longitude of the starting point in format %3.6f. Range [-180:+180]. Example: 8.321000</line>
+ <line>key = END_LONGITUDE, value = value of type 'd', that expresses the longitude of the ending point in format %3.6f. Range [-180:+180]. Example: 8.321000</line>
+ <line>Note: END_LONGITUDE can be omitted, if it coincides with the longitude of the start point of the next segment</line>
+ <line>key = START_ALTITUDE, value = value of type 'i', that expresses the altitude relative to the ground of the starting point in meters</line>
+ <line>key = END_ALTITUDE, value = value of type 'i', that expresses the altitude relative to the ground of the ending point in meters</line>
+ <line>Note: END_ALTITUDE can be omitted, if it coincides with the altitude of the start point of the next segment</line>
+ <line>key = INTERMEDIATE_POINTS, value = value of type 'a(qddd)', that expresses an array of intermediate points</line>
+ <line>Note: an intermedate point is expressed as a struct(type,latitude,longitude,altitude), where type = enum(INVALID,HARD_POINT,SOFT_POINT, ... )</line>
+ <line>key = ROAD_NUMBER, value = value of type 's', that expresses the road number</line>
+ <line>key = ROAD_NAME, value = value of type 's', that expresses the road name</line>
+ <line>key = DISTANCE, value = value of type 'u', that identifies distance to the next segment in meters</line>
+ <line>key = TIME, value = value of type 'u', that identifies time to travel to the next segment in seconds</line>
+ <line>key = MANEUVER, value = value of type 'a(qqaq)', that identifies a pictogram that describes the next maneuver (OPTIONAL)</line>
+ <line>key = INSTRUCTION, value = value of type 's', that identifies the instruction to the user</line>
+ <line>key = BORDER_CROSSING, value = value of type 's', that contains information about border crossings</line>
+ <line>key = TIME_ZONE, value = value of type 'n', that indicates the time zone of the current segment. It is expressed as the time difference from the UTC in minutes</line>
+ <line>key = DAYLIGHT_SAVING_TIME, value = value of type 'n', that indicates the daylight saving time of the current segment. It is expressed as the time difference from the UTC in minutes</line>
+ <line>key = ADDITIONAL_INFORMATION, value = value of type 's', that contains additional information to the user (toll cost, ... )</line>
+ <line>key = HIGHWAY_EXIT, value = value of type 's', that in case the road segment ends with a highway exit, it expresses the highway exit number</line>
+ <line>key = START_OFFSET, value = value of type 'u', that indicates the offset of the starting point in meters from the beginning of the route</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetRouteOverview">
+ <doc>
+ <line> GetRouteOverview = This method retrieves general information about a given route</line>
+ </doc>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="valuesToReturn" type="aq" direction="in">
+ <doc>
+ <line>valuesToReturn = array[key]</line>
+ <line>key = enum(ARRIVAL_TIME,ARRIVAL_DATE,DEPARTURE_TIME,DEPARTURE_DATE,TOTAL_DISTANCE,TOTAL_TIME, ... ,ALL)</line>
+ </doc>
+ </arg>
+ <arg name="routeOverview" type="a{qv}" direction="out">
+ <doc>
+ <line>routeOverview = array[detail]</line>
+ <line>detail = tuple(key,value)</line>
+ <line>key = enum(ARRIVAL_TIME,ARRIVAL_DATE,DEPARTURE_TIME,DEPARTURE_DATE,TOTAL_DISTANCE,TOTAL_TIME, ...)</line>
+ <line>key = ARRIVAL_TIME, value of type 'u', that represents the arrival time expressed in seconds since mid-night (UTC)</line>
+ <line>key = ARRIVAL_DATE, value of type 'u', that represents the arrival date expressed either as calendar date (the number of days since 1 Jan 2000) or as weekday. The weekday is expressed with values from 0 to 6 (0 = Saturday, 1 = Sunday, 2 = Monday, ..., 6 = Friday)</line>
+ <line>key = DEPARTURE_TIME, value of type 'u', that represents the departure time expressed in seconds since mid-night (UTC)</line>
+ <line>key = DEPARTURE_DATE, value of type 'u', that represents the departure date expressed either as calendar date (the number of days since 1 Jan 2000) or as weekday. The weekday is expressed with values from 0 to 6 (0 = Saturday, 1 = Sunday, 2 = Monday, ..., 6 = Friday)</line>
+ <line>key = TOTAL_DISTANCE, value of type 'u', that represents the total distance in m </line>
+ <line>key = TOTAL_TIME, value of type 'u', that represents the total time in seconds </line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetRouteBoundingBox">
+ <doc>
+ <line>GetRouteBoundingBox = This method retrieves the bounding box containing a calculated route</line>
+ </doc>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="boundingBox" type="((dd)(dd))" direction="out">
+ <doc>
+ <line>boundingBox = struct(top-left-corner,bottom-right-corner)</line>
+ <line>geocoordinates of the top-left-corner = struct(lat,lon)</line>
+ <line>geocoordinates of the bottom-right-corner = struct(lat,lon)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]. Example: 48.053250</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]. Example: 8.321000</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetAllRoutes">
+ <doc>
+ <line>GetAllRoutes = This method retrieves the handles of all created routes</line>
+ </doc>
+ <arg name="routesList" type="au" direction="out">
+ <doc>
+ <line>routesList = array[route]</line>
+ <line>route = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="AlternativeRoutesAvailable">
+ <doc>
+ <line>AlternativeRoutesAvailable = This signal is emitted when alternative routes have been computed in the background and are available for guidance.</line>
+ </doc>
+ <arg name="routeHandlesList" type="au">
+ <doc>
+ <line>routeHandlesList = array[routeHandle]</line>
+ <line>routeHandle = Handle identifying a computed alternative route. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="SetBlockedRouteStretches">
+ <doc>
+ <line>SetBlockedRouteStretches = This method sets blocked streches on a given route</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="blockParameters" type="a(uu)" direction="in">
+ <doc>
+ <line>blockParameters = struct(offset,length)</line>
+ <line>offset = the offset in meters from the beginning of the route where the road block starts from</line>
+ <line>length = the length of the road block in meters</line>
+ <line>Note: pass an empty array to remove previously set blocked route stretches</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetBlockedRouteStretches">
+ <doc>
+ <line>GetBlockedRouteStretches = This method retrieves all blocked streches on a given route</line>
+ </doc>
+ <arg name="routeHandle" type="u" direction="in">
+ <doc>
+ <line>routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="blockParameters" type="a(uu)" direction="out">
+ <doc>
+ <line>blockParameters = struct(offset,length)</line>
+ <line>offset = the offset in meters from the beginning of the route where the road block starts from</line>
+ <line>length = the length of the road block in meters</line>
+ </doc>
+ </arg>
+ </method>
+ </interface>
+</node>
diff --git a/api/navigation-core/genivi-navigationcore-session.xml b/api/navigation-core/genivi-navigationcore-session.xml
new file mode 100755
index 0000000..36a552a
--- /dev/null
+++ b/api/navigation-core/genivi-navigationcore-session.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.navigationcore.Session">
+ <version>3.0.0-alpha (07-06-2013)</version>
+ <doc>
+ <line>Session = This interface offers functions to create and delete sessions</line>
+ </doc>
+ <method name="GetVersion">
+ <doc>
+ <line>GetVersion = This method returns the API version implemented by the server application</line>
+ </doc>
+ <arg name="version" type="(qqqs)" direction="out">
+ <doc>
+ <line>version = struct(major,minor,micro,date)</line>
+ <line>major = when the major changes, then backward compatibility with previous releases is not granted</line>
+ <line>minor = when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added)</line>
+ <line>micro = when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications)</line>
+ <line>date = release date (e.g. 21-06-2011)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="CreateSession">
+ <doc>
+ <line>CreateSession = This method creates a new session</line>
+ </doc>
+ <arg name="client" type="s" direction="in">
+ <doc>
+ <line>client = name or identifier of the client application that requests a new session</line>
+ <line>The navigation core must internally associate this name to the returned session handle</line>
+ <line>This parameter can be used to identify the client application and determine if a given feature is enabled for it</line>
+ </doc>
+ </arg>
+ <arg name="sessionHandle" type="u" direction="out">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Session.Error.NoMoreSessionHandles">
+ <doc>
+ <line>This error is generated if no more session handles are available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="DeleteSession">
+ <doc>
+ <line>DeleteSession = This method deletes a session and its associated resources</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.navigationcore.Session.Error.SessionNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to delete a session handle that is not available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetSessionStatus">
+ <doc>
+ <line>GetSessionStatus = This method returns whether a given session handle is available or not (for example because it was deleted)</line>
+ </doc>
+ <arg name="sessionHandle" type="u" direction="in">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="sessionStatus" type="q" direction="out">
+ <doc>
+ <line>sessionStatus = enum(INVALID,AVAILABLE,NOT_AVAILABLE)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetAllSessions">
+ <doc>
+ <line>GetAllSessions = This method returns a list of all available sessions</line>
+ </doc>
+ <arg name="sessionsList" type="a(us)" direction="out">
+ <doc>
+ <line>sessionsList = array[struct(sessionHandle,client)]</line>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ <line>client = name or identifier of the client application that requested the sessionHandle</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="SessionDeleted">
+ <doc>
+ <line>SessionDeleted = This signal is emitted when a session is deleted</line>
+ </doc>
+ <arg name="sessionHandle" type="u">
+ <doc>
+ <line>sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ </signal>
+ </interface>
+</node>
diff --git a/api/navigation-core/introspect.xsd b/api/navigation-core/introspect.xsd
new file mode 100755
index 0000000..76ed7ef
--- /dev/null
+++ b/api/navigation-core/introspect.xsd
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wmh="http://www.wmhelp.com/2003/eGenerator" elementFormDefault="qualified">
+ <!-- xmlns="introspect.dtd"
+ targetNamespace="introspect.dtd"> -->
+ <xs:element name="node">
+ <xs:annotation>
+ <xs:documentation> DTD for D-Bus Introspection data
+ </xs:documentation>
+ <xs:documentation> (C) 2005-02-02 David A. Wheeler; released under
+ the D-Bus licenses,
+ GNU GPL version 2 (or greater) and AFL 1.1 (or
+ greater)
+ </xs:documentation>
+ <xs:documentation> see D-Bus specification for documentation
+ </xs:documentation>
+ <xs:documentation> Method arguments SHOULD include "direction",
+ while
+ signal and error arguments SHOULD not (since there's no point).
+ The
+ DTD format can't express that subtlety.
+ </xs:documentation>
+ <xs:documentation> Generic metadata </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="node"/>
+ <xs:element name="interface" type="interfaceType"/>
+ </xs:choice>
+ <xs:attribute name="name" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="interfaceType">
+ <xs:sequence>
+ <xs:element name="version" type="xs:string"/>
+ <xs:element name="doc" type="docType"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="method" type="methodType"/>
+ <xs:element name="signal" type="signalType"/>
+ <xs:element name="property" type="propertyType"/>
+ <xs:element name="annotation" type="annotationType"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="methodType">
+ <xs:sequence>
+ <xs:element name="status" type="statusType" minOccurs="0"/>
+ <xs:element name="poc" type="pocType" minOccurs="0"/>
+ <xs:element name="obligation" type="obligationType" minOccurs="0"/>
+ <xs:element name="doc" type="docType"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="arg" type="argType"/>
+ <xs:element name="annotation" type="annotationType"/>
+ <xs:element name="error" type="errorType"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="signalType">
+ <xs:sequence>
+ <xs:element name="status" type="statusType" minOccurs="0"/>
+ <xs:element name="poc" type="pocType" minOccurs="0"/>
+ <xs:element name="obligation" type="obligationType" minOccurs="0"/>
+ <xs:element name="doc" type="docType"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="arg" type="argType"/>
+ <xs:element name="annotation" type="annotationType"/>
+ <xs:element name="error" type="errorType"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="argType">
+ <xs:sequence>
+ <xs:element name="doc" type="docType"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string"/>
+ <xs:attribute name="type" type="xs:string" use="required"/>
+ <xs:attribute name="direction" default="in">
+ <xs:simpleType>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="in"/>
+ <xs:enumeration value="out"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="propertyType">
+ <xs:annotation>
+ <xs:documentation> AKA "attribute" </xs:documentation>
+ </xs:annotation>
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="status" type="statusType" minOccurs="0"/>
+ <xs:element name="poc" type="pocType" minOccurs="0"/>
+ <xs:element name="obligation" type="obligationType" minOccurs="0"/>
+ <xs:element name="annotation" type="annotationType"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="type" type="xs:string" use="required"/>
+ <xs:attribute name="access" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="read"/>
+ <xs:enumeration value="write"/>
+ <xs:enumeration value="readwrite"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="annotationType">
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="value" type="xs:string" use="required"/>
+ </xs:complexType>
+ <!-- proprietary extensions from LBS-EG -->
+ <!-- <xs:complexType name="versionType" /> -->
+ <xs:complexType name="docType">
+ <xs:sequence>
+ <!-- <xs:element maxOccurs="unbounded" name="line" type="lineType"/> -->
+ <xs:element maxOccurs="unbounded" name="line" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="statusType">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Approved"/>
+ <xs:enumeration value="Pending"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="pocType">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Yes"/>
+ <xs:enumeration value="No"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="obligationType">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Mandatory"/>
+ <xs:enumeration value="Optional"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="errorType">
+ <xs:sequence>
+ <xs:element name="doc" type="docType"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <!-- <xs:complexType name="lineType" /> -->
+</xs:schema>
diff --git a/api/navigation-core/introspect.xsl b/api/navigation-core/introspect.xsl
new file mode 100644
index 0000000..29cc34c
--- /dev/null
+++ b/api/navigation-core/introspect.xsl
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+ <!--
+ Copyright (C) 2005 Lennart Poettering.
+
+ Licensed under the Academic Free License version 2.1
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+-->
+
+ <!-- v0.1 26-06-2011 Marco Residori: Added support for inline documentation (tags doc,line and version) -->
+ <!-- v0.2 12-01-2012 Marco Residori: Added support for inline documentation (tags status,type) -->
+ <!-- v0.3 18-01-2012 Marco Residori: Added support for inline documentation (tag error) -->
+ <!-- v0.4 14-03-2012 Marco Residori: Added support for property-type and property-access. Replaced tag 'type' with 'obligation' -->
+
+ <!-- $Id$ -->
+ <xsl:output method="xml" version="1.0" encoding="iso-8859-15" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes"/>
+ <xsl:template match="/">
+ <html>
+ <!-- head -->
+ <head>
+ <title>DBUS Introspection Data</title>
+ <style type="text/css">
+ body { color: black; background-color: white }
+ h1 { font-family: sans-serif }
+ ul { list-style-type: none; margin-bottom: 10px }
+ li { font-family: sans-serif }
+ .keyword { font-style: italic }
+ .type { font-weight: bold; font-size: 10pt }
+ .symbol { font-family: monospace }
+ .title { font-style: italic; color: blue }
+ .interface { padding: 10px; margin: 10px }
+
+ .line { font-style: italic; font-size:8pt; color: green}
+ .version { font-family: monospace }
+ .status { font-weight: bold; font-size:6pt }
+ .obligation { font-weight: bold; font-size:6pt }
+ .error { font-style: italic; font-size:8pt; color: black}
+ </style>
+ </head>
+ <!-- body -->
+ <body>
+ <!-- interfaces -->
+ <xsl:for-each select="node/interface">
+ <div class="interface">
+ <h1>
+ <span class="keyword">interface</span>
+ <xsl:text> </xsl:text>
+ <span class="title">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="version">version</span>
+ <xsl:text> </xsl:text>
+ <span class="version">
+ <xsl:value-of select="version"/>
+ </span>
+ </h1>
+ <ul>
+ <xsl:apply-templates select="doc"/>
+ </ul>
+ <ul>
+ <xsl:apply-templates select="annotation"/>
+ <!-- methods, signals and properties -->
+ <xsl:for-each select="method|signal|property">
+ <hr/>
+ <li>
+ <xsl:if test="status !=''">
+ <span class="status">[<xsl:value-of select="status"/>] </span>
+ </xsl:if>
+ <xsl:if test="obligation !=''">
+ <span class="obligation">[<xsl:value-of select="obligation"/>] </span>
+ </xsl:if>
+ <xsl:apply-templates select="doc"/>
+ <span class="keyword">
+ <xsl:value-of select="name()"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="symbol">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="keyword">
+ <xsl:value-of select="@access"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="type">
+ <xsl:value-of select="@type"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <ul>
+ <xsl:apply-templates select="annotation"/>
+ <!-- arguments -->
+ <xsl:for-each select="arg">
+ <br/>
+ <xsl:apply-templates select="doc"/>
+ <li>
+ <span class="keyword">
+ <xsl:choose>
+ <xsl:when test="@direction !=''">
+ <xsl:value-of select="@direction"/>
+ </xsl:when>
+ <xsl:when test="name(..) ='signal'">
+ out
+ </xsl:when>
+ <xsl:otherwise>
+ in
+ </xsl:otherwise>
+ </xsl:choose>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="type">
+ <xsl:value-of select="@type"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="symbol">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ </li>
+ </xsl:for-each>
+ <br/>
+ <!-- errors -->
+ <xsl:apply-templates select="error"/>
+ <br/>
+ </ul>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </div>
+ </xsl:for-each>
+ </body>
+ </html>
+ </xsl:template>
+ <xsl:template match="annotation">
+ <li>
+ <span class="keyword">annotation</span>
+ <code>
+ <xsl:value-of select="@name"/>
+ </code>
+ <xsl:text> = </xsl:text>
+ <code>
+ <xsl:value-of select="@value"/>
+ </code>
+ </li>
+ </xsl:template>
+ <xsl:template match="doc">
+ <li>
+ <span class="line">
+ <xsl:for-each select="line">
+ <xsl:value-of select="."/>
+ <xsl:element name="br"/>
+ </xsl:for-each>
+ </span>
+ </li>
+ </xsl:template>
+ <xsl:template match="error">
+ <li>
+ <xsl:apply-templates select="doc"/>
+ <span class="keyword">error</span>
+ <xsl:text> </xsl:text>
+ <span class="error">
+ <code>
+ <xsl:value-of select="@name"/>
+ </code>
+ </span>
+ <xsl:element name="br"/>
+ <br/>
+ </li>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/api/poi-service/constants.xsl b/api/poi-service/constants.xsl
new file mode 100644
index 0000000..7616ebb
--- /dev/null
+++ b/api/poi-service/constants.xsl
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+ <!-- 09.3.2011 Marco Residori: First Draft -->
+ <!-- 14.3.2011 Marco Residori: Improved layout -->
+ <xsl:output method="xml" version="1.0" encoding="iso-8859-15" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes"/>
+ <xsl:template match="/">
+ <html>
+ <!-- head -->
+ <head>
+ <title>DBUS Introspection Data</title>
+ <style type="text/css">
+ body { color: black; background-color: white }
+ h1 { font-family: sans-serif }
+ ul { list-style-type: none; margin-bottom: 10px }
+ li { font-family: sans-serif }
+ .keyword { font-style: italic }
+ .id { font-style: italic; font-size:8pt; }
+ .title { font-style: italic; color: blue }
+ .line { font-style: italic; font-size:8pt; color: green}
+ .version { font-family: monospace }
+ </style>
+ </head>
+ <!-- body -->
+ <body>
+ <!-- definitions -->
+ <xsl:apply-templates select="constants"/>
+ </body>
+ </html>
+ </xsl:template>
+ <xsl:template match="constants">
+ <div class="constants">
+ <h1>
+ <span class="keyword">constants</span>
+ <xsl:text> </xsl:text>
+ <span class="title">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="version">version</span>
+ <xsl:text> </xsl:text>
+ <span class="version">
+ <xsl:value-of select="version"/>
+ </span>
+ </h1>
+ <xsl:apply-templates select="doc"/>
+ <xsl:for-each select="id">
+ <hr/>
+ <li>
+ <xsl:apply-templates select="doc"/>
+ <span class="id"><xsl:value-of select="@name"/> = <xsl:value-of select="@value"/></span>
+ </li>
+ </xsl:for-each>
+ </div>
+ </xsl:template>
+ <xsl:template match="doc">
+ <li>
+ <span class="line">
+ <xsl:for-each select="line">
+ <xsl:value-of select="."/>
+ <xsl:element name="br"/>
+ </xsl:for-each>
+ </span>
+ </li>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/api/poi-service/enum.xsl b/api/poi-service/enum.xsl
new file mode 100644
index 0000000..4c093e8
--- /dev/null
+++ b/api/poi-service/enum.xsl
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ************************************************************************
+* Component Name: Navit POC
+* Author: Martin Schaller <martin.schaller@it-schaller.de>
+*
+* Copyright (C) 2012, GENIVI Alliance, Inc.
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License version 2 as
+* published by the Free Software Foundation.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+************************************************************************ -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+ <xsl:output method="text" encoding="iso-8859-15"/>
+ <xsl:template match="constants">
+ <xsl:variable name="constants" select="translate(@name,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
+/* This is an automatically generated file, do not edit */
+
+enum GENIVI_<xsl:value-of select="$constants"/>_Constants {<xsl:for-each select="id">
+ GENIVI_<xsl:value-of select="$constants"/>_<xsl:value-of select="translate(@name,'-','_')"/> = <xsl:value-of select="@value"/>,</xsl:for-each>
+};
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/api/poi-service/genivi-poiservice-constants.xml b/api/poi-service/genivi-poiservice-constants.xml
new file mode 100644
index 0000000..4831a80
--- /dev/null
+++ b/api/poi-service/genivi-poiservice-constants.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="constants.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<constants name="POIService">
+ <version>1.0.0 (19.12.2012)</version>
+ <doc>
+ <line>This document defines the constants used in the POIService APIs</line>
+ </doc>
+ <id name="INVALID" value="0"/>
+ <id name="AIRPORT" value="1"/>
+ <id name="SPORTING" value="2"/>
+ <id name="FERRY_TERMINAL" value="3"/>
+ <id name="ENTERTAINMENT" value="4"/>
+ <id name="HOTEL_MOTEL" value="5"/>
+ <id name="RESTAURANT" value="6"/>
+ <id name="PARKING" value="7"/>
+ <id name="FUEL_STATION" value="8"/>
+ <id name="SERVICE_AREA" value="9"/>
+ <id name="CAR_REPAIR_SHOP" value="10"/>
+ <id name="CAR_DEALER" value="11"/>
+ <id name="CAR_RENTAL_AGENCY" value="12"/>
+ <id name="MEDICAL" value="13"/>
+ <id name="SHOPPING" value="14"/>
+ <id name="BUSINESS_AREA" value="15"/>
+ <id name="LANDMARK" value="16"/>
+ <id name="FLASH_RADAR" value="17"/>
+ <id name="POI_TRUCK" value="18"/>
+ <id name="SANCTUARY" value="19"/>
+ <id name="TOLLBOOTH" value="20"/>
+ <id name="KIOSK" value="21"/>
+ <id name="WATER_CLOSET" value="22"/>
+ <id name="BANK_AND_FINANCIAL" value="23"/>
+ <id name="TRAVEL" value="24"/>
+ <id name="TOURIST" value="25"/>
+ <id name="PUBLIC_BUILDING" value="26"/>
+ <id name="RAILWAY_STATION" value="27"/>
+ <id name="DESTINATION_FLAG" value="204"/>
+ <id name="FAVORITE" value="205"/>
+ <id name="FAVORITE_HOME" value="206"/>
+ <id name="FAVORITE_ADDRESSBOOK" value="207"/>
+ <id name="USER_IMPORT" value="208"/>
+ <id name="USER_CONTACT" value="209"/>
+ <id name="MOTORWAY_EXIT" value="210"/>
+ <id name="ALL_CATEGORIES" value="0xffff"/>
+ <id name="STRING" value="500"/>
+ <id name="INTEGER" value="501"/>
+ <id name="COORDINATES" value="502"/>
+ <id name="NOT_STARTED" value="510"/>
+ <id name="SEARCHING" value="511"/>
+ <id name="FINISHED" value="512"/>
+ <id name="MORE_THAN" value="520"/>
+ <id name="LESS_THAN" value="521"/>
+ <id name="EQUAL" value="522"/>
+ <id name="SORT_DEFAULT" value="560"/>
+ <id name="SORT_BY_DISTANCE" value="561"/>
+ <id name="SORT_BY_TIME" value="562"/>
+ <id name="OFF_ROUTE" value="600"/>
+ <id name="ON_ROUTE" value="601"/>
+ <id name="INSIDE_CORRIDOR" value="602"/>
+ <id name="ADDED" value="700" />
+ <id name="REMOVED" value="701" />
+ <id name="ATTR_ADDED" value="702" />
+ <id name="ATTR_MODIFIED" value="703" />
+ <id name="ATTR_REMOVED" value="704" />
+</constants>
diff --git a/api/poi-service/genivi-poiservice-contentaccessmodule.xml b/api/poi-service/genivi-poiservice-contentaccessmodule.xml
new file mode 100644
index 0000000..cf04798
--- /dev/null
+++ b/api/poi-service/genivi-poiservice-contentaccessmodule.xml
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/poiservice" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.poiservice.POIContentAccessModule">
+ <version>1.0.0 (19-12-2012)</version>
+ <doc>
+ <line>This interface offers a set of common methods to the POI components to deal with all the content access modules (CAM). The CAM provide and update POI and categories information from remote sources to the POIService modules</line>
+ </doc>
+ <method name="GetVersion">
+ <doc>
+ <line>GetVersion = This method returns the API version implemented by the content access module.</line>
+ </doc>
+ <arg name="version" type="(qqqs)" direction="out">
+ <doc>
+ <line>version = struct(major,minor,micro,date)</line>
+ <line>major = when the major changes, then backward compatibility with previous releases is not granted</line>
+ <line>minor = when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added)</line>
+ <line>micro = when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications)</line>
+ <line>date = release date (e.g. 22-05-2012)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetLanguage">
+ <doc>
+ <line>SetLanguage = Set the current language set for the search by poi provider module.</line>
+ <line>The language defines the poi and categories name and details language. If the language is not supported, the default details will be returned in the native language.</line>
+ </doc>
+ <arg direction="in" name="languageCode" type="s">
+ <doc>
+ <line>languageCode = The language.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="countryCode" type="s">
+ <doc>
+ <line>countryCode = The country specific variant for the language.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="PoiSearchStarted">
+ <doc>
+ <line>PoiSearchStarted = This method is sent by the POI service component to inform all the CAM that a new POI search was started.</line>
+ <line>It provides all the relevant search parameters. Of course the CAM will only be aware of the search if it registers one of the search categories.</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle. It must be used by the CAM to send the list of results to the component.</line>
+ </doc>
+ </arg>
+ <arg name="maxSize" type="q" direction="in">
+ <doc>
+ <line>maxSize = max size of the results list</line>
+ </doc>
+ </arg>
+ <arg name="location" type="(ddi)" direction="in">
+ <doc>
+ <line>location = struct(lat,lon,alt)</line>
+ <line>lat = latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>lon = longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250</line>
+ <line>alt = altitude above the sea level of the current position in meters</line>
+ </doc>
+ </arg>
+ <arg name="poiCategories" type="a(qu)" direction="in">
+ <doc>
+ <line>poiCategories = array[struct(category, radius)]</line>
+ <line>category = enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)</line>
+ <line>radius = activation or search radius around the position (in 10 meters) for the category. If value is 0 (zero), the default radius (defined for a category) is applied.</line>
+ <line>Note: A POI category is a unique ID. It could be a predifined category or a custom one defined by a POI plug-in.</line>
+ </doc>
+ </arg>
+ <arg name="poiAttributes" type="a(sqqvqb)" direction="in">
+ <doc>
+ <line>poiAtttributes = array[struct(name, poiCategory, type, value, operator, mandatory)]</line>
+ <line>name = attribute unique name (see data model)</line>
+ <line>poiCategory = enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)</line>
+ <line>type = enum(INVALID,STRING,INTEGER,COORDINATES ...)</line>
+ <line>value = value or partial value. The value depends on the attribute specifications and type.</line>
+ <line>operator = enum(INVALID,MORE_THAN,LESS_THAN,EQUAL, ....)</line>
+ <line>mandatory = true if the attribute is mandatory for the search and false for optional.</line>
+ </doc>
+ </arg>
+ <arg name="inputString" type="s" direction="in">
+ <doc>
+ <line>inputString = contains the name of the poi that is searched. It could be a partial name or an empty string.</line>
+ </doc>
+ </arg>
+ <arg name="sortOption" type="q" direction="in">
+ <doc>
+ <line>sortOption = enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... )</line>
+ <line>If more than one category was defined for this search, the sort criteria should be compliant with all categories.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="PoiSearchCanceled">
+ <doc>
+ <line>PoiSearchCanceled = This method cancels the search for the current id</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="ResultListRequested">
+ <doc>
+ <line>ResultListRequested = This method provides the poi results list found by the CAM.</line>
+ <line>As the POI unique id is managed by the POI component, the CAM only provides the POI name, the category and coordinates as well as all the relevant detailed information.</line>
+ </doc>
+ <arg name="camId" type="y" direction="in">
+ <doc>
+ <line>camId = Content access module unique id as known by the POI service component.</line>
+ </doc>
+ </arg>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <arg name="attributes" type="as" direction="in">
+ <doc>
+ <line>attributes = List of attributes name to retrieve. This is optional and the list could be empty.</line>
+ </doc>
+ </arg>
+ <arg name="statusValue" type="q" direction="out">
+ <doc>
+ <line>statusValue = enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... )</line>
+ </doc>
+ </arg>
+ <arg name="resultListSize" type="q" direction="out">
+ <doc>
+ <line>resultListSize = Number of items of the results list</line>
+ </doc>
+ </arg>
+ <arg name="resultList" type="a(usq(ddi)qa(sqv))" direction="out">
+ <doc>
+ <line>resultList = array[source_id,name, category, location, distance, attributes]</line>
+ <line>source_id = POI unique id as known by the content access module. This id will be used by POI service to request POI details.</line>
+ <line>name = POI name</line>
+ <line>category = POI category unique id</line>
+ <line>location = struct(lat,lon,alt)</line>
+ <line>POI location</line>
+ <line>lat = latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>lon = longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250</line>
+ <line>alt = altitude above the sea level of the current position in meters</line>
+ <line>distance = distance in meters to poi from center of the search</line>
+ <line>attributes = array[struct(name, type, value)]</line>
+ <line>List of attributes requested. It could be empty.</line>
+ <line>name = attribute unique name (see data model)</line>
+ <line>type = enum(INVALID,STRING,INTEGER,COORDINATES ...)</line>
+ <line>value = value. The value depends on the attribute specifications and type.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.CamNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to send data to the POI service component but the CAM id is not registered.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.HandleNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to use a poi search unique handle that is not available or not valid</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.InvalidCategory">
+ <doc>
+ <line>The category associated to a POI is not valid or was not added by the CAM to the component.</line>
+ </doc>
+ </error>
+ </method>
+ <method name="PoiDetailsRequested">
+ <doc>
+ <line>PoiDetailsRequested = This method retrieves the details associated to one or more POI.</line>
+ <line>It contains the name, the parent categories, the list of attributes, the icons, ... .</line>
+ </doc>
+ <arg name="source_id" type="au" direction="in">
+ <doc>
+ <line>list of poi = Unique source poi id</line>
+ </doc>
+ </arg>
+ <arg name="results" type="a((usddi)aqa(sqv))" direction="out">
+ <doc>
+ <line>results = array[details, categories, attributes]</line>
+ <line>results = List of details for all the POI.</line>
+ <line>details = struct(unique id, name, lat, lon, alt)</line>
+ <line>source id = POI id</line>
+ <line>name = POI name</line>
+ <line>lat = latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>lon = longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250</line>
+ <line>alt = altitude above the sea level of the current position in meters</line>
+ <line>categories = array[id]</line>
+ <line>id = enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)</line>
+ <line>attributes = array[struct(name, type, value)]</line>
+ <line>name = attribute unique name (see data model)</line>
+ <line>type = enum(INVALID,STRING,INTEGER,COORDINATES ...)</line>
+ <line>value = value. The value depends on the attribute specifications and type.</line>
+ <line>Note: This list only contains the available attributes. If there is no value for an optional attributes, it is not returned.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.CamNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to send data to the POI service component but the CAM id is not registered.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.InvalidPoiSourceId">
+ <doc>
+ <line>The poi unique source id is not valid for the content access module.</line>
+ </doc>
+ </error>
+ </method>
+ </interface>
+</node>
diff --git a/api/poi-service/genivi-poiservice-poicontentaccess.xml b/api/poi-service/genivi-poiservice-poicontentaccess.xml
new file mode 100644
index 0000000..2a025bb
--- /dev/null
+++ b/api/poi-service/genivi-poiservice-poicontentaccess.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/poiservice" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.poiservice.POIContentAccess">
+ <version>1.0.0 (19-12-2012)</version>
+ <doc>
+ <line>This interface offers a set of common methods for Content Access Modules (CAM). The CAM provide and update POI and categories information from remote sources to the POIService modules</line>
+ </doc>
+ <method name="RegisterContentAccessModule">
+ <doc>
+ <line>RegisterContentAccessModule = Register to the POI provider module.</line>
+ <line>When the CAM registers, it provides a name and then get a unique id. This id must be used everytime the CAM communicates with the POI service component.</line>
+ <line>After the registration is done, the CAM can start to update POI categories and POI attributes as well as registers POI categories to search for.</line>
+ </doc>
+ <arg direction="in" name="moduleName" type="s">
+ <doc>
+ <line>moduleName = The name of the CAM.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="camId" type="y">
+ <doc>
+ <line>camId = Content access module unique id as known by the POI service component.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.RegistrationFailed">
+ <doc>
+ <line>The registration failed (for instance the name is not unique).</line>
+ </doc>
+ </error>
+ </method>
+ <method name="UnRegisterContentAccessModule">
+ <doc>
+ <line>UnRegisterContentAccessModule = Remove CAM from POI provider module.</line>
+ </doc>
+ <arg name="camId" type="y" direction="in">
+ <doc>
+ <line>camId = Content access module unique id as known by the POI service component.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.CamNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to send data to the POI service component but the CAM id is not registered.</line>
+ </doc>
+ </error>
+ </method>
+ <method name="RegisterPoiCategories">
+ <doc>
+ <line>RegisterPoiCategories = Register to the POI provider module the categories you can search for POI.</line>
+ <line>The categories could be predifined one or customized ones. In order to register a customized category, you might need to create it before and add it to the POI service component.</line>
+ </doc>
+ <arg name="camId" type="y" direction="in">
+ <doc>
+ <line>camId = Content access module unique id as known by the POI service component.</line>
+ </doc>
+ </arg>
+ <arg name="poiCategories" type="aq" direction="in">
+ <doc>
+ <line>poiCategories = array[unique_id]</line>
+ <line>List of POI categories to register.</line>
+ <line>unique_id = Unique category id</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.CamNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to send data to the POI service component but the CAM id is not registered.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.InvalidCategory">
+ <doc>
+ <line>The category was already registered.</line>
+ </doc>
+ </error>
+ </method>
+ <method name="AddCategories">
+ <doc>
+ <line>AddCategories = Add new categories to the POI service component.</line>
+ <line>The CAM provides for each categories the name, the parent categories, the top level attribute, the list of attributes, the icons, ... .</line>
+ </doc>
+ <arg name="camId" type="y" direction="in">
+ <doc>
+ <line>camId = Content access module unique id as known by the POI service component.</line>
+ </doc>
+ </arg>
+ <arg name="poiCategories" type="a((aqvssv)a(sqa(qs))a(qs))" direction="in">
+ <doc>
+ <line>poiCategories = array[details, attributes, sortOptions]</line>
+ <line>List of details for all the POI categories.</line>
+ <line>details = struct(list of parents_id, icons, name, short_desc, media)]</line>
+ <line>parents_id = list of parent categories unique id</line>
+ <line>icons = visual icons set</line>
+ <line>name = name</line>
+ <line>short_desc = short category description (optional)</line>
+ <line>media = medial associated (html web site, audio, video, ...) (optional)</line>
+ <line>attributes = array[struct(name, type, array[struct(operator_id, operator_name)])</line>
+ <line>name = attribute unique name</line>
+ <line>type = enum(INVALID,STRING,INTEGER,COORDINATES ...)</line>
+ <line>operator_id = enum(INVALID,MORE_THAN,LESS_THAN,EQUAL, ....)</line>
+ <line>operator_name = attribute operator name</line>
+ <line>sortOptions = array[struct(id, name)]</line>
+ <line>id = enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... )</line>
+ <line>name = name to be displayed by application</line>
+ </doc>
+ </arg>
+ <arg name="poiCategoriesId" type="aq" direction="out">
+ <doc>
+ <line>poiCategoriesId = array of unique POI categories as registered by the POI service component.</line>
+ <line>Note: A POI category is a unique ID.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.CamNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to send data to the POI service component but the CAM id is not registered.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.InvalidCategory">
+ <doc>
+ <line>The category was already added or is already a predifined one.</line>
+ <line>Note: As there is no id yet, a category is defined as unique if there was no category registered before with the same name and parent category.</line>
+ </doc>
+ </error>
+ </method>
+ <method name="UpdateCategories">
+ <doc>
+ <line>UpdateCategories = Update categories in the POI service component. It could be a predifined or a customed one.</line>
+ <line>The CAM provides for each categories the list of attributes (mandatories like name or optional) it wants to update.</line>
+ <line>Depending on the local database write policy, the CAM might only be able to update customized attributes for a category and not the predefined ones so some update could be rejected.</line>
+ </doc>
+ <arg name="camId" type="y" direction="in">
+ <doc>
+ <line>camId = Content access module unique id as known by the POI service component.</line>
+ </doc>
+ </arg>
+ <arg name="poiCategories" type="a(qa(sqa(qs))a(qs))" direction="in">
+ <doc>
+ <line>poiCategories = array[unique_id, attributes, sortOptions]</line>
+ <line>List of attributes to update.</line>
+ <line>unique_id = unique category id</line>
+ <line>attributes = array[struct(name, type, array[struct(operator_id, operator_name)])</line>
+ <line>name = attribute unique name</line>
+ <line>type = enum(INVALID,STRING,INTEGER,COORDINATES ...)</line>
+ <line>operator_id = enum(INVALID,MORE_THAN,LESS_THAN,EQUAL, ....)</line>
+ <line>operator_name = attribute operator name</line>
+ <line>sortOptions = array[struct(id, name)]</line>
+ <line>id = enum(SORT_DEFAULT,BY_DISTANCE,BY_TIME,ATTRIBUTE_CUSTOM, ... )</line>
+ <line>name = name to be displayed by application</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.CamNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to send data to the POI service component but the CAM id is not registered.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.ReadOnly">
+ <doc>
+ <line>At least one of the attribute of a given category was not updated due to read-only policy.</line>
+ <line>Note: The other attributes were updated.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.InvalidCategory">
+ <doc>
+ <line>One of the category is not available.</line>
+ </doc>
+ </error>
+ </method>
+ <method name="RemoveCategories">
+ <doc>
+ <line>RemoveCategories = Remove categories from the POI service component. It could be a predifined or a customed one.</line>
+ <line>Depending on the local database write policy, the CAM might only not be able to remove some categories.</line>
+ </doc>
+ <arg name="camId" type="y" direction="in">
+ <doc>
+ <line>camId = Content access module unique id as known by the POI service component.</line>
+ </doc>
+ </arg>
+ <arg name="poiCategories" type="aq" direction="in">
+ <doc>
+ <line>poiCategories = array[unique_id]</line>
+ <line>List of categories to remove.</line>
+ <line>unique_id = unique category id</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.CamNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to send data to the POI service component but the CAM id is not registered.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.ReadOnly">
+ <doc>
+ <line>At least one of the category was not deleted due to read-only policy.</line>
+ <line>Note: The other categories were removed.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiContentAccess.Error.InvalidCategory">
+ <doc>
+ <line>One of the category is not available.</line>
+ </doc>
+ </error>
+ </method>
+ </interface>
+</node>
diff --git a/api/poi-service/genivi-poiservice-poisearch.xml b/api/poi-service/genivi-poiservice-poisearch.xml
new file mode 100644
index 0000000..c674141
--- /dev/null
+++ b/api/poi-service/genivi-poiservice-poisearch.xml
@@ -0,0 +1,609 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/poiservice" xsi:noNamespaceSchemaLocation="introspect.xsd">
+ <interface name="org.genivi.poiservice.POISearch">
+ <version>1.0.0 (19-12-2012)</version>
+ <doc>
+ <line>This interface offers methods that implement the POI search functionality of a navigation system</line>
+ </doc>
+ <method name="GetVersion">
+ <doc>
+ <line>GetVersion = This method returns the API version implemented by the server application</line>
+ </doc>
+ <arg name="version" type="(qqqs)" direction="out">
+ <doc>
+ <line>version = struct(major,minor,micro,date)</line>
+ <line>major = when the major changes, then backward compatibility with previous releases is not granted</line>
+ <line>minor = when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added)</line>
+ <line>micro = when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications)</line>
+ <line>date = release date (e.g. 22-05-2012)</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetLanguage">
+ <doc>
+ <line>GetLanguage = Get the current language set for the search.</line>
+ <line>The language defines the poi and categories name and details language. If the language is not supported, the default details will be returned in the native language.</line>
+ </doc>
+ <arg direction="out" name="languageCode" type="s">
+ <doc>
+ <line>languageCode = The language.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="countryCode" type="s">
+ <doc>
+ <line>countryCode = The country specific variant for the language.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetLanguage">
+ <doc>
+ <line>SetLanguage = Set the language.</line>
+ <line>The language defines the poi and categories name and details language. If the language is not supported, the default details will be returned in the native language.</line>
+ </doc>
+ <arg direction="in" name="languageCode" type="s">
+ <doc>
+ <line>languageCode = The language to be used.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="countryCode" type="s">
+ <doc>
+ <line>countryCode = The country specific variant for the language to be used.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="ValidateCategories">
+ <doc>
+ <line>ValidateCategories = This method allows the application to validate that POI categories are supported by the POI component and the Content access modules.</line>
+ </doc>
+ <arg name="categories" type="aq" direction="in">
+ <doc>
+ <line>categories = array[id]</line>
+ <line>id = enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)</line>
+ <line>Note: A POI category is a unique ID.</line>
+ </doc>
+ </arg>
+ <arg name="results" type="a(qb)" direction="out">
+ <doc>
+ <line>results = array[unique_id, status]</line>
+ <line>results = List of status for all the POI categories.</line>
+ <line>unique id = POI id</line>
+ <line>status = true if the category is available.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetAvailableCategories">
+ <doc>
+ <line>GetAvailableCategories = This method retrieves the list od POI categories available (pre-defined and custom).</line>
+ </doc>
+ <arg name="categories" type="a(qsb)" direction="out">
+ <doc>
+ <line>categories = array[struct(id, name, top_level)]</line>
+ <line>id = enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)</line>
+ <line>name = name to be displayed by application</line>
+ <line>top_level = true if the category is a pre-defined one (top level with only ALL_CATEGORIES as parent), false for customized categories created by plug-in.</line>
+ <line>Note: A POI category is a unique ID.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetRootCategory">
+ <doc>
+ <line>GetRootCategory = Get the root category id. That would be ALL_CATEGORIES.</line>
+ </doc>
+ <arg name="category" type="q" direction="out">
+ <doc>
+ <line>id = ALL_CATEGORIES</line>
+ <line>The root category is a top level one by design.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetChildrenCategories">
+ <doc>
+ <line>GetChildrenCategories = Get the children categories id and type (top level) from the a parent unique id.</line>
+ </doc>
+ <arg name="category" type="q" direction="in">
+ <doc>
+ <line>unique category id</line>
+ </doc>
+ </arg>
+ <arg name="categories" type="a(qb)" direction="out">
+ <doc>
+ <line>categories = array[struct(id, top_level)]</line>
+ <line>id = enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)</line>
+ <line>top_level = true if the category is a pre-defined one (top level with only ALL_CATEGORIES as parent), false for customized categories created by plug-in.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.InvalidCategory">
+ <doc>
+ <line>The category is not available.</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetParentCategories">
+ <doc>
+ <line>GetParentCategories = Get the parent categories id and type (top level) from the a unique id.</line>
+ </doc>
+ <arg name="category" type="q" direction="in">
+ <doc>
+ <line>unique category id</line>
+ </doc>
+ </arg>
+ <arg name="categories" type="a(qb)" direction="out">
+ <doc>
+ <line>categories = array[struct(id, top_level)]</line>
+ <line>id = enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)</line>
+ <line>top_level = true if the category is a pre-defined one (top level with only ALL_CATEGORIES as parent), false for customized categories created by plug-in.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.InvalidCategory">
+ <doc>
+ <line>The category is not available.</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetCategoriesDetails">
+ <doc>
+ <line>GetCategoriesDetails = This method retrieves the details associated to one or more POI categories.</line>
+ <line>It contains the name, the parent categories, the top level attribute, the list of attributes, the icons, ... .</line>
+ </doc>
+ <arg name="categories" type="aq" direction="in">
+ <doc>
+ <line>list of categories = enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)</line>
+ <line>Note: A POI category is a unique ID. It could be a predifined category or a custom one defined by a POI plug-in.</line>
+ </doc>
+ </arg>
+ <arg name="results" type="a((qaqvsbsv)a(sqa(qs))a(qs))" direction="out">
+ <doc>
+ <line>results = array[details, attributes, sortOptions]</line>
+ <line>results = List of details for all the POI categories.</line>
+ <line>details = struct(unique_id, list of parents_id, icons, name, top_level, short_desc, media)]</line>
+ <line>unique_id = Category unique id</line>
+ <line>parents_id = list of parent categories unique id</line>
+ <line>icons = visual icons set</line>
+ <line>name = name</line>
+ <line>top_level = true if the category is a pre-defined one (top level), false for customized categories created by plug-in.</line>
+ <line>short_desc = short category description (optional)</line>
+ <line>media = medial associated (html web site, audio, video, ...) (optional)</line>
+ <line>attributes = array[struct(name, type, array[struct(operator_id, operator_name)])</line>
+ <line>name = attribute unique name</line>
+ <line>type = enum(INVALID,STRING,INTEGER,COORDINATES ...)</line>
+ <line>operator_id = enum(INVALID,MORE_THAN,LESS_THAN,EQUAL, ....)</line>
+ <line>operator_name = attribute operator name</line>
+ <line>sortOptions = array[struct(id, name)]</line>
+ <line>id = enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... )</line>
+ <line>name = name to be displayed by application</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.InvalidCategory">
+ <doc>
+ <line>The category is not available.</line>
+ <line>If there are more than one category and one of them is not available, no detailed will be returned for this category but there will be no error.</line>
+ </doc>
+ </error>
+ </method>
+ <signal name="CategoriesUpdated">
+ <doc>
+ <line>CategoriesUpdated = This signal indicates that one or more POI categories were added, updated or removed.</line>
+ </doc>
+ <arg name="poiCategories" type="a(qq)" direction="out">
+ <doc>
+ <line>poiCategories = array[struct(unique_id, reason)]</line>
+ <line>List of POI categories modified or added.</line>
+ <line>unique_id = Unique category id</line>
+ <line>reason = enum(ADDED,REMOVED,ATTR_ADDED,ATTR_MODIFIED,ATTR_REMOVED, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="CreatePoiSearchHandle">
+ <doc>
+ <line>CreatePoiSearchHandle = This method creates a new location input and retrieves a handle</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="out">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.NoMoreHandles">
+ <doc>
+ <line>This error is generated if no more poi search unique handles are available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="DeletePoiSearchHandle">
+ <doc>
+ <line>DeletePoiSearchHandle = This method deletes a location input and its associated resources</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.HandleNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to delete a poi search unique handle that is not available</line>
+ </doc>
+ </error>
+ </method>
+ <method name="SetCenter">
+ <doc>
+ <line>SetCenter = This method sets the location to start the search around.</line>
+ <line>If a route handle was defined before, it will be replaced by this location.</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <arg name="location" type="(ddi)" direction="in">
+ <doc>
+ <line>location = struct(lat,lon,alt)</line>
+ <line>lat = latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>lon = longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250</line>
+ <line>alt = altitude above the sea level of the current position in meters</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.InvalidPosition">
+ <doc>
+ <line>This error is generated if an application tries to set invalid coordinates.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.SearchIsActive">
+ <doc>
+ <line>This error is generated if an application tries to change the search criteria but the search is on-going and could not be updated.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.HandleNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to use a poi search unique handle that is not available or not valid</line>
+ </doc>
+ </error>
+ </method>
+ <method name="SetRouteHandle">
+ <doc>
+ <line>SetRouteHandle = This method allows to start a POI search along a guided route.</line>
+ <line>The route handle must be valid or the POI search will failed.</line>
+ <line>If a search location was defined before, it will be replaced by the route.</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <arg name="sessionHandle" type="y" direction="in">
+ <doc>
+ <line>sessionHandle = session handle</line>
+ </doc>
+ </arg>
+ <arg name="routeHandle" type="y" direction="in">
+ <doc>
+ <line>routeHandle = route handle.</line>
+ </doc>
+ </arg>
+ <arg name="startSearchOffset" type="q" direction="in">
+ <doc>
+ <line>startSearchOffset (optional) = Distance from vehicle (in meters) from where to start the search along. 0 or invalid distance means start from vehicle.</line>
+ </doc>
+ </arg>
+ <arg name="endSearchOffset" type="q" direction="in">
+ <doc>
+ <line>endSearchOffset (optional) = Lenght of the route (in meters) from where to start the search along. 0 or invalid lenght means end is the destination.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.InvalidRouteHandle">
+ <doc>
+ <line>This error is generated if an application tries to set invalid route handle.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.SearchIsActive">
+ <doc>
+ <line>This error is generated if an application tries to change the search criteria but the search is on-going and could not be updated.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.HandleNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to use a poi search unique handle that is not available or not valid</line>
+ </doc>
+ </error>
+ </method>
+ <method name="SetCategories">
+ <doc>
+ <line>SetCategories = This method sets the POI categories for the current search input and the corresponding result-lists for the current session</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <arg name="poiCategories" type="a(qu)" direction="in">
+ <doc>
+ <line>poiCategories = array[struct(category, radius)]</line>
+ <line>category = enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)</line>
+ <line>radius = activation or search radius around the position (in 10 meters) for the category. If value is 0 (zero), the default radius (defined for a category) is applied.</line>
+ <line>Note: A POI category is a unique ID. It could be a predifined category or a custom one defined by a POI plug-in.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.InvalidCategory">
+ <doc>
+ <line>This error is generated if an application tries to set one or more invalid poi categories.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.SearchIsActive">
+ <doc>
+ <line>This error is generated if an application tries to change the search criteria but the search is on-going and could not be updated.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.HandleNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to use a poi search unique handle that is not available or not valid</line>
+ </doc>
+ </error>
+ </method>
+ <method name="SetAttributes">
+ <doc>
+ <line>SetAttributes = This method set POI attributes (optional) for the current search input and the corresponding result-lists for the current session</line>
+ <line>An attribute is attached to a category</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <arg name="poiAttributes" type="a(sqqvqb)" direction="in">
+ <doc>
+ <line>poiAtttributes = array[struct(name, poiCategory, type, value, operator, mandatory)]</line>
+ <line>name = attribute unique name (see data model)</line>
+ <line>poiCategory = enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)</line>
+ <line>type = enum(INVALID,STRING,INTEGER,COORDINATES ...)</line>
+ <line>value = value or partial value. The value depends on the attribute specifications and type.</line>
+ <line>operator = enum(INVALID,MORE_THAN,LESS_THAN,EQUAL, ....)</line>
+ <line>mandatory = true if the attribute is mandatory for the search and false for optional.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.InvalidPoiAttribute">
+ <doc>
+ <line>This error is generated if an application tries to set one or more invalid poi attributes.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.SearchIsActive">
+ <doc>
+ <line>This error is generated if an application tries to change the search criteria but the search is on-going and could not be updated.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.HandleNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to use a poi search unique handle that is not available or not valid</line>
+ </doc>
+ </error>
+ </method>
+ <method name="StartPoiSearch">
+ <doc>
+ <line>StartPoiSearch = This method sends the search input for the search handle.</line>
+ <line>The search will start with the either the location or the route handle.</line>
+ <line>If no positon or route handle were configured, the search will use the vehicle position are center location.</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <arg name="inputString" type="s" direction="in">
+ <doc>
+ <line>inputString = contains the name of the poi that is searched. It could be a partial name or an empty string.</line>
+ </doc>
+ </arg>
+ <arg name="sortOption" type="q" direction="in">
+ <doc>
+ <line>sortOption = enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... )</line>
+ <line>If more than one category was defined for this search, the sort criteria should be compliant with all categories.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.HandleNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to use a poi search unique handle that is not available or not valid</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.InvalidCategory">
+ <doc>
+ <line>This error is generated if an application tries to start a search without, at least, one poi category defined.</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.BadLocation">
+ <doc>
+ <line>This error is generated if an application tries to start a search without a valid location (coordinates or route handle) defined.</line>
+ </doc>
+ </error>
+ </method>
+ <method name="CancelPoiSearch">
+ <doc>
+ <line>CancelPoiSearch = This method cancels the search for the current session</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.HandleNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to use a poi search unique handle that is not available or not valid</line>
+ </doc>
+ </error>
+ </method>
+ <method name="StartPoiProximityAlert">
+ <doc>
+ <line>StartPoiProximityAlert = This method starts to check for POI aound vehicle according to the criteria defined with the unique handle.</line>
+ <line>Bt default, it will search for POI around vehicle position with default radius defined for each categories.</line>
+ <line>If a route handle was defined, it will search along the route with default categorie's radius.</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi alert unique handle</line>
+ </doc>
+ </arg>
+ <arg name="inputString" type="s" direction="in">
+ <doc>
+ <line>inputString = contains the name of the poi that is searched. It could be a partial name or an empty string.</line>
+ </doc>
+ </arg>
+ <arg name="sortOption" type="q" direction="in">
+ <doc>
+ <line>sortOption = enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... )</line>
+ <line>If more than one category was defined for this search, the sort criteria should be compliant with all categories.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.HandleNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to use a poi search unique handle that is not available or not valid</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.InvalidCategory">
+ <doc>
+ <line>This error is generated if an application tries to start a search without, at least, one poi category defined.</line>
+ </doc>
+ </error>
+ </method>
+ <method name="CancelPoiProximityAlert">
+ <doc>
+ <line>CancelPoiProximityAlert = This method cancels the search for the current session</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi alert unique handle</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.HandleNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to use a poi search unique handle that is not available or not valid</line>
+ </doc>
+ </error>
+ </method>
+ <signal name="PoiStatus">
+ <doc>
+ <line>PoiStatus = This signal updates the search or proximity alert status of the specified handle.</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="out">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <arg name="statusValue" type="q" direction="out">
+ <doc>
+ <line>statusValue = enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... )</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="ResultListChanged">
+ <doc>
+ <line>ResultListChanged = This signal updates in the poi results list</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="out">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <arg name="resultListSize" type="q" direction="out">
+ <doc>
+ <line>resultListSize = Number of items of the results list</line>
+ </doc>
+ </arg>
+ </signal>
+ <method name="RequestResultList">
+ <doc>
+ <line>RequestResultList = This method gets the poi result list (e.g. after a Search/Scroll call)</line>
+ </doc>
+ <arg name="poiSearchHandle" type="y" direction="in">
+ <doc>
+ <line>poiSearchHandle = poi search unique handle</line>
+ </doc>
+ </arg>
+ <arg name="offset" type="q" direction="in">
+ <doc>
+ <line>offset = starting offset of the newly requested list elements. If invalid (more that total list for instance) it starts from the begining.</line>
+ </doc>
+ </arg>
+ <arg name="maxWindowSize" type="q" direction="in">
+ <doc>
+ <line>maxWindowSize = maximum number of elements that should be returned as result</line>
+ </doc>
+ </arg>
+ <arg name="attributes" type="as" direction="in">
+ <doc>
+ <line>attributes = List of attributes name to retrieve. This is optional and the list could be empty.</line>
+ </doc>
+ </arg>
+ <arg name="statusValue" type="q" direction="out">
+ <doc>
+ <line>statusValue = enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... )</line>
+ </doc>
+ </arg>
+ <arg name="resultListSize" type="q" direction="out">
+ <doc>
+ <line>resultListSize = Number of items of the results list</line>
+ </doc>
+ </arg>
+ <arg name="resultListWindow" type="a(uuqa(sqv))" direction="out">
+ <doc>
+ <line>resultListWindow = array[unique_id, distance, route_status, attributes]</line>
+ <line>unique_id = POI unique id</line>
+ <line>distance = distance in meters to poi from center of the search or from vehicle if search along</line>
+ <line>route_status = enum(OFF_ROUTE,ON_ROUTE,INSIDE_CORRIDOR, ... )</line>
+ <line>attributes = array[struct(name, type, value)]</line>
+ <line>List of attributes requested. It could be empty.</line>
+ <line>name = attribute unique name (see data model)</line>
+ <line>type = enum(INVALID,STRING,INTEGER,COORDINATES ...)</line>
+ <line>value = value. The value depends on the attribute specifications and type.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.HandleNotAvailable">
+ <doc>
+ <line>This error is generated if an application tries to use a poi search unique handle that is not available or not valid</line>
+ </doc>
+ </error>
+ <error name="org.genivi.poiservice.poiSearch.Error.InvalidPoiAttribute">
+ <doc>
+ <line>This error is generated if an application tries to get one or more invalid poi attributes.</line>
+ </doc>
+ </error>
+ </method>
+ <method name="GetPoiDetails">
+ <doc>
+ <line>GetPoiDetails = This method retrieves the details associated to one or more POI.</line>
+ <line>It contains the name, the parent categories, the list of attributes, the icons, ... .</line>
+ </doc>
+ <arg name="id" type="au" direction="in">
+ <doc>
+ <line>list of poi = Unique poi id</line>
+ </doc>
+ </arg>
+ <arg name="results" type="a((usddi)aqa(sqv))" direction="out">
+ <doc>
+ <line>results = array[details, categories, attributes]</line>
+ <line>results = List of details for all the POI.</line>
+ <line>details = struct(unique id, name, lat, lon, alt)</line>
+ <line>unique id = POI id</line>
+ <line>name = POI name</line>
+ <line>lat = latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>lon = longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250</line>
+ <line>alt = altitude above the sea level of the current position in meters</line>
+ <line>categories = array[id]</line>
+ <line>id = enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...)</line>
+ <line>attributes = array[struct(name, type, value)]</line>
+ <line>name = attribute unique name (see data model)</line>
+ <line>type = enum(INVALID,STRING,INTEGER,COORDINATES ...)</line>
+ <line>value = value. The value depends on the attribute specifications and type.</line>
+ <line>Note: This list only contains the available attributes. If there is no value for an optional attributes, it is not returned.</line>
+ </doc>
+ </arg>
+ <error name="org.genivi.poiservice.poiSearch.Error.InvalidPoiId">
+ <doc>
+ <line>The poi unique id is not valid.</line>
+ </doc>
+ </error>
+ </method>
+ </interface>
+</node>
diff --git a/api/poi-service/introspect.xsd b/api/poi-service/introspect.xsd
new file mode 100755
index 0000000..76ed7ef
--- /dev/null
+++ b/api/poi-service/introspect.xsd
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wmh="http://www.wmhelp.com/2003/eGenerator" elementFormDefault="qualified">
+ <!-- xmlns="introspect.dtd"
+ targetNamespace="introspect.dtd"> -->
+ <xs:element name="node">
+ <xs:annotation>
+ <xs:documentation> DTD for D-Bus Introspection data
+ </xs:documentation>
+ <xs:documentation> (C) 2005-02-02 David A. Wheeler; released under
+ the D-Bus licenses,
+ GNU GPL version 2 (or greater) and AFL 1.1 (or
+ greater)
+ </xs:documentation>
+ <xs:documentation> see D-Bus specification for documentation
+ </xs:documentation>
+ <xs:documentation> Method arguments SHOULD include "direction",
+ while
+ signal and error arguments SHOULD not (since there's no point).
+ The
+ DTD format can't express that subtlety.
+ </xs:documentation>
+ <xs:documentation> Generic metadata </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="node"/>
+ <xs:element name="interface" type="interfaceType"/>
+ </xs:choice>
+ <xs:attribute name="name" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="interfaceType">
+ <xs:sequence>
+ <xs:element name="version" type="xs:string"/>
+ <xs:element name="doc" type="docType"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="method" type="methodType"/>
+ <xs:element name="signal" type="signalType"/>
+ <xs:element name="property" type="propertyType"/>
+ <xs:element name="annotation" type="annotationType"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="methodType">
+ <xs:sequence>
+ <xs:element name="status" type="statusType" minOccurs="0"/>
+ <xs:element name="poc" type="pocType" minOccurs="0"/>
+ <xs:element name="obligation" type="obligationType" minOccurs="0"/>
+ <xs:element name="doc" type="docType"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="arg" type="argType"/>
+ <xs:element name="annotation" type="annotationType"/>
+ <xs:element name="error" type="errorType"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="signalType">
+ <xs:sequence>
+ <xs:element name="status" type="statusType" minOccurs="0"/>
+ <xs:element name="poc" type="pocType" minOccurs="0"/>
+ <xs:element name="obligation" type="obligationType" minOccurs="0"/>
+ <xs:element name="doc" type="docType"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="arg" type="argType"/>
+ <xs:element name="annotation" type="annotationType"/>
+ <xs:element name="error" type="errorType"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="argType">
+ <xs:sequence>
+ <xs:element name="doc" type="docType"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string"/>
+ <xs:attribute name="type" type="xs:string" use="required"/>
+ <xs:attribute name="direction" default="in">
+ <xs:simpleType>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="in"/>
+ <xs:enumeration value="out"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="propertyType">
+ <xs:annotation>
+ <xs:documentation> AKA "attribute" </xs:documentation>
+ </xs:annotation>
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="status" type="statusType" minOccurs="0"/>
+ <xs:element name="poc" type="pocType" minOccurs="0"/>
+ <xs:element name="obligation" type="obligationType" minOccurs="0"/>
+ <xs:element name="annotation" type="annotationType"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="type" type="xs:string" use="required"/>
+ <xs:attribute name="access" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="read"/>
+ <xs:enumeration value="write"/>
+ <xs:enumeration value="readwrite"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="annotationType">
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="value" type="xs:string" use="required"/>
+ </xs:complexType>
+ <!-- proprietary extensions from LBS-EG -->
+ <!-- <xs:complexType name="versionType" /> -->
+ <xs:complexType name="docType">
+ <xs:sequence>
+ <!-- <xs:element maxOccurs="unbounded" name="line" type="lineType"/> -->
+ <xs:element maxOccurs="unbounded" name="line" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="statusType">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Approved"/>
+ <xs:enumeration value="Pending"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="pocType">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Yes"/>
+ <xs:enumeration value="No"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="obligationType">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Mandatory"/>
+ <xs:enumeration value="Optional"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="errorType">
+ <xs:sequence>
+ <xs:element name="doc" type="docType"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <!-- <xs:complexType name="lineType" /> -->
+</xs:schema>
diff --git a/api/poi-service/introspect.xsl b/api/poi-service/introspect.xsl
new file mode 100644
index 0000000..29cc34c
--- /dev/null
+++ b/api/poi-service/introspect.xsl
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+ <!--
+ Copyright (C) 2005 Lennart Poettering.
+
+ Licensed under the Academic Free License version 2.1
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+-->
+
+ <!-- v0.1 26-06-2011 Marco Residori: Added support for inline documentation (tags doc,line and version) -->
+ <!-- v0.2 12-01-2012 Marco Residori: Added support for inline documentation (tags status,type) -->
+ <!-- v0.3 18-01-2012 Marco Residori: Added support for inline documentation (tag error) -->
+ <!-- v0.4 14-03-2012 Marco Residori: Added support for property-type and property-access. Replaced tag 'type' with 'obligation' -->
+
+ <!-- $Id$ -->
+ <xsl:output method="xml" version="1.0" encoding="iso-8859-15" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes"/>
+ <xsl:template match="/">
+ <html>
+ <!-- head -->
+ <head>
+ <title>DBUS Introspection Data</title>
+ <style type="text/css">
+ body { color: black; background-color: white }
+ h1 { font-family: sans-serif }
+ ul { list-style-type: none; margin-bottom: 10px }
+ li { font-family: sans-serif }
+ .keyword { font-style: italic }
+ .type { font-weight: bold; font-size: 10pt }
+ .symbol { font-family: monospace }
+ .title { font-style: italic; color: blue }
+ .interface { padding: 10px; margin: 10px }
+
+ .line { font-style: italic; font-size:8pt; color: green}
+ .version { font-family: monospace }
+ .status { font-weight: bold; font-size:6pt }
+ .obligation { font-weight: bold; font-size:6pt }
+ .error { font-style: italic; font-size:8pt; color: black}
+ </style>
+ </head>
+ <!-- body -->
+ <body>
+ <!-- interfaces -->
+ <xsl:for-each select="node/interface">
+ <div class="interface">
+ <h1>
+ <span class="keyword">interface</span>
+ <xsl:text> </xsl:text>
+ <span class="title">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="version">version</span>
+ <xsl:text> </xsl:text>
+ <span class="version">
+ <xsl:value-of select="version"/>
+ </span>
+ </h1>
+ <ul>
+ <xsl:apply-templates select="doc"/>
+ </ul>
+ <ul>
+ <xsl:apply-templates select="annotation"/>
+ <!-- methods, signals and properties -->
+ <xsl:for-each select="method|signal|property">
+ <hr/>
+ <li>
+ <xsl:if test="status !=''">
+ <span class="status">[<xsl:value-of select="status"/>] </span>
+ </xsl:if>
+ <xsl:if test="obligation !=''">
+ <span class="obligation">[<xsl:value-of select="obligation"/>] </span>
+ </xsl:if>
+ <xsl:apply-templates select="doc"/>
+ <span class="keyword">
+ <xsl:value-of select="name()"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="symbol">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="keyword">
+ <xsl:value-of select="@access"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="type">
+ <xsl:value-of select="@type"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <ul>
+ <xsl:apply-templates select="annotation"/>
+ <!-- arguments -->
+ <xsl:for-each select="arg">
+ <br/>
+ <xsl:apply-templates select="doc"/>
+ <li>
+ <span class="keyword">
+ <xsl:choose>
+ <xsl:when test="@direction !=''">
+ <xsl:value-of select="@direction"/>
+ </xsl:when>
+ <xsl:when test="name(..) ='signal'">
+ out
+ </xsl:when>
+ <xsl:otherwise>
+ in
+ </xsl:otherwise>
+ </xsl:choose>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="type">
+ <xsl:value-of select="@type"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="symbol">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ </li>
+ </xsl:for-each>
+ <br/>
+ <!-- errors -->
+ <xsl:apply-templates select="error"/>
+ <br/>
+ </ul>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </div>
+ </xsl:for-each>
+ </body>
+ </html>
+ </xsl:template>
+ <xsl:template match="annotation">
+ <li>
+ <span class="keyword">annotation</span>
+ <code>
+ <xsl:value-of select="@name"/>
+ </code>
+ <xsl:text> = </xsl:text>
+ <code>
+ <xsl:value-of select="@value"/>
+ </code>
+ </li>
+ </xsl:template>
+ <xsl:template match="doc">
+ <li>
+ <span class="line">
+ <xsl:for-each select="line">
+ <xsl:value-of select="."/>
+ <xsl:element name="br"/>
+ </xsl:for-each>
+ </span>
+ </li>
+ </xsl:template>
+ <xsl:template match="error">
+ <li>
+ <xsl:apply-templates select="doc"/>
+ <span class="keyword">error</span>
+ <xsl:text> </xsl:text>
+ <span class="error">
+ <code>
+ <xsl:value-of select="@name"/>
+ </code>
+ </span>
+ <xsl:element name="br"/>
+ <br/>
+ </li>
+ </xsl:template>
+</xsl:stylesheet>