IToiChannelService Interface Reference


Description

Technical Preview:
This interface is a TECHNICAL PREVIEW, it may change. The IToiChannelService is used to retrive information about available channels, for example services scanned through IToiScanner and friends.

import "IToiChannelService.idl";

List of all members.

Public Member Functions

void GetOperationManager (out string address)
void GetPropertyDefinition (in TToiPropertyId propertyId, out TToiPropertyDefinition definition) raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException)
void RunQuery (in IToiOperationManager::TToiOperationId operationId, in TToiQueryConditionSequence queryConditions, in TToiPropertyIdSequence requestedProperties) raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException)
void GetChannelsInfo (in TToiChannelIdSequence channels, in TToiPropertyIdSequence requestedProperties, out TToiChannelInfoSequence channelsInfo) raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException)
void GetChannelInfoResult (in IToiOperationManager::TToiOperationId operationId, out TToiChannelInfoSequence results) raises (TToiInvalidArgumentException, TToiNoDataException)
void RegisterObserver (in IToiApplicationService::TToiApplicationId applicationId, in string address) raises (TToiInvalidArgumentException)
void ReleaseObserver (in string address) raises (TToiInvalidArgumentException)

Public Attributes

Operation results

The result types defined for channel service operations. See IToiOperationManager for generic result types.

const
IToiOperationManager::TToiOperationResult 
OP_RESULT_CHANNEL_INFO = 1
Property constants

Constants for standard and recommended channel property identifiers. Properties named system.* are set by the platform and can not be removed or changed by the application.

const string PROPERTY_MODULATION_SYSTEM_TYPE = "system.modulationsystemtype"
const string PROPERTY_NETWORK_NAME = "system.networkname"
const string PROPERTY_NETWORK_ID = "system.networkid"
const string PROPERTY_SERVICE_TYPE = "system.servicetype"
const string PROPERTY_SERVICE_PROVIDER = "system.serviceprovider"
const string PROPERTY_SERVICE_ID = "system.serviceid"
const string PROPERTY_SERVICE_NAME = "system.servicename"
const string PROPERTY_LOGICAL_CHANNEL_NUMBER = "system.logicalchannelnumber"
const string PROPERTY_VISIBLE = "system.visible"
const string PROPERTY_FREE = "system.free"
const string PROPERTY_ORIGINAL_NETWORK_ID = "system.originalnetworkid"
const string PROPERTY_TRANSPORT_STREAM_ID = "system.transportstreamid"
const string PROPERTY_DELIVERY_SYSTEM_DESCRIPTOR = "system.deliverysystemdescriptor"
const string PROPERTY_URI = "system.uri"
const string PROPERTY_SOURCE_ID = "system.sourceid"
const string PROPERTY_FREQUENCY = "system.frequency"
const string PROPERTY_MODULATION_FORMAT = "system.modulationformat"

Classes

struct  TToiChannelInfo
struct  TToiProperty
struct  TToiPropertyDefinition
struct  TToiQueryCondition

Public Types

enum  TToiPropertyType { TYPE_BOOLEAN, TYPE_STRING, TYPE_INTEGER }
enum  TToiConditionOperation { EQUALS, NOT_EQUAL }
typedef string TToiPropertyId
typedef sequence< TToiPropertyIdTToiPropertyIdSequence
typedef string TToiPropertyValue
typedef long TToiChannelId
typedef sequence< TToiChannelIdTToiChannelIdSequence
typedef sequence< TToiPropertyTToiPropertySequence
typedef sequence
< TToiQueryCondition
TToiQueryConditionSequence
typedef sequence< TToiChannelInfoTToiChannelInfoSequence

Member Typedef Documentation

Type defined to identify a unique channel.

Sequence of channel ids.

Identifier for metadata properties.

Sequence of TToiPropertyId's.

Sequence of property tags.

Value for a metadata property.

Sequence of query conditions.


Member Enumeration Documentation

Enumerarion of possible operations that can be used when creating a TToiQueryCondition.

Enumerator:
EQUALS 

Equal operation, ==.

NOT_EQUAL 

Not equal operation, !=.

Different kinds of property value types.

Enumerator:
TYPE_BOOLEAN 

Value of true/false.

TYPE_STRING 

Any string value.

TYPE_INTEGER 

A signed integer value.


Member Function Documentation

void IToiChannelService::GetChannelInfoResult ( in IToiOperationManager::TToiOperationId  operationId,
out TToiChannelInfoSequence  results 
) raises (TToiInvalidArgumentException, TToiNoDataException)

Used to get the query results once the applications receive IToiOperationObserver::OnOperationResult() and the result parameter is equal to OP_RESULT_CHANNEL_INFO.

Parameters:
operationId The operation identifier used when calling RunQuery().
Return values:
results The resulting channel information.
Exceptions:
TToiInvalidArgumentException Raised if the operation identifier is invalid
TToiNoDataException Raised if no result is available.
Note:
The total buffer can extend the maximum ipc message size.
void IToiChannelService::GetChannelsInfo ( in TToiChannelIdSequence  channels,
in TToiPropertyIdSequence  requestedProperties,
out TToiChannelInfoSequence  channelsInfo 
) raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException)

Returns information for all requested channels.

Parameters:
channels A sequence of channels ids. Using an empty sequence will return all stored channels.
requestedProperties The requested properties that will be included in the result. Using an empty sequence will return all properties. If some requested property does not exist, this property will not be in the channel info.
Return values:
channelsInfo The information of all requested channels.
Exceptions:
TToiInvalidArgumentException Raised if any channel id is invalid, or raised if the number of channels exceed the maximum supported number.
TToiNotEnoughResourcesException Raised if there were not enough system resources to perform the query.
Note:
The total buffer can extend the maximum ipc message size.
void IToiChannelService::GetOperationManager ( out string  address  ) 

Returns the operation manager that handles asynchronous operations for all services derived from the Frontend service. The procedure of executing asynchronous operations is generic and looks like this:

  • Get a handle to the operation manager.
  • Register an observer to get operation events from the operation manager.
  • Create an operation in order to get an operation identifier.
  • Call a asynchronous operation using the operation identifier.
  • Receive progress events for the asynchronous operation.
  • When the operation is completed, get result data (if any).
  • Release the operation or reuse the identifier for another asynchronous call.
Return values:
address The address to the IToiOperationManager.
void IToiChannelService::GetPropertyDefinition ( in TToiPropertyId  propertyId,
out TToiPropertyDefinition  definition 
) raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException)

Returns the property definition for a given property identifier.

Parameters:
propertyId The property identifier.
Return values:
definition The property definition.
Exceptions:
TToiInvalidArgumentException Raised if the property identifier is invalid.
TToiNotEnoughResourcesException Raised if there were not enough system resources to perform the operation.
void IToiChannelService::RegisterObserver ( in IToiApplicationService::TToiApplicationId  applicationId,
in string  address 
) raises (TToiInvalidArgumentException)

Register an observer of type IToiChannelObserver. The observer will receive events sent by this IToiChannelService instance.

Parameters:
applicationId The identifier of the observing application.
address The address where the IToiChannelService can find an IToiChannelObserver interface.
Exceptions:
TToiInvalidArgumentException Raised if the specified address is invalid or if the application has already registered itself as an observer with the same address.
See also:
IToiChannelObserver
void IToiChannelService::ReleaseObserver ( in string  address  )  raises (TToiInvalidArgumentException)

Release an observer previously registered with RegisterObserver.

Parameters:
address The address where the IToiChannelService can find the registered IToiChannelObserver interface.
Exceptions:
TToiInvalidArgumentException Raised if the specified address is invalid.
See also:
IToiChannelObserver
void IToiChannelService::RunQuery ( in IToiOperationManager::TToiOperationId  operationId,
in TToiQueryConditionSequence  queryConditions,
in TToiPropertyIdSequence  requestedProperties 
) raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException)

Returns information of all channels that match the given query conditions. This is an asynchronous operation. When the application receives a IToiOperationObserver::OnOperationResult() call with the operation result OP_RESULT_CHANNEL_INFO, then the application may get the results by calling the GetChannelInfoResult() function. The resulting TToiChannelInfo will only include property values for the requested properties.

Parameters:
operationId The operation identifier created by IToiOperationManager.
queryConditions This sequence specifies the search criteria for which channels to search for. Using an empty sequence will return all stored channels.
requestedProperties The requested properties that will be included in the result. Using an empty sequence will return all properties. If some requested property does not exist, this property will not be in the channel info.
Exceptions:
TToiInvalidArgumentException Raised if any of the conditions are invalid, or raised if the operation identifier is illegal.
TToiNotEnoughResourcesException Raised if there were not enough system resources to perform the query.

Member Data Documentation

The asynchronous operation has channel info as a result. See GetChannelInfoResult().

This constant can also be accessed from toi.consts.IToiChannelService.OP_RESULT_CHANNEL_INFO.

const string IToiChannelService::PROPERTY_DELIVERY_SYSTEM_DESCRIPTOR = "system.deliverysystemdescriptor"

The delivery system descriptor, used in a broadcast setting.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_DELIVERY_SYSTEM_DESCRIPTOR.

const string IToiChannelService::PROPERTY_FREE = "system.free"

Defines whether the channel is available for free or not. "true" means that it is free, "false" that it is not.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_FREE.

const string IToiChannelService::PROPERTY_FREQUENCY = "system.frequency"

The frequency this channel is sent on, used in a broadcast setting.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_FREQUENCY.

const string IToiChannelService::PROPERTY_LOGICAL_CHANNEL_NUMBER = "system.logicalchannelnumber"

The logical channel number for this channel, used in a broadcast setting. For DVB, see Nordig.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_LOGICAL_CHANNEL_NUMBER.

const string IToiChannelService::PROPERTY_MODULATION_FORMAT = "system.modulationformat"

The modulation format this channel is sent on, used in a broadcast setting.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_MODULATION_FORMAT.

const string IToiChannelService::PROPERTY_MODULATION_SYSTEM_TYPE = "system.modulationsystemtype"

Specifies which modulation system the channel uses. See IToiFrontendService::TToiModulationSystem

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_MODULATION_SYSTEM_TYPE.

const string IToiChannelService::PROPERTY_NETWORK_ID = "system.networkid"

The id of the network the channel is sent on.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_NETWORK_ID.

const string IToiChannelService::PROPERTY_NETWORK_NAME = "system.networkname"

The name of the network the channel is sent on.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_NETWORK_NAME.

const string IToiChannelService::PROPERTY_ORIGINAL_NETWORK_ID = "system.originalnetworkid"

The original network id this channel is sent on, used in a broadcast setting.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_ORIGINAL_NETWORK_ID.

const string IToiChannelService::PROPERTY_SERVICE_ID = "system.serviceid"

The service id for this channel, used in a broadcast setting.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_SERVICE_ID.

const string IToiChannelService::PROPERTY_SERVICE_NAME = "system.servicename"

The service name for this channel, used in a broadcast setting.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_SERVICE_NAME.

const string IToiChannelService::PROPERTY_SERVICE_PROVIDER = "system.serviceprovider"

The provider of the service.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_SERVICE_PROVIDER.

const string IToiChannelService::PROPERTY_SERVICE_TYPE = "system.servicetype"

The type of service this channel offers.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_SERVICE_TYPE.

const string IToiChannelService::PROPERTY_SOURCE_ID = "system.sourceid"
Note:
The following properties are specific to ATSC. The source id for this channel, used in a broadcast setting.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_SOURCE_ID.

const string IToiChannelService::PROPERTY_TRANSPORT_STREAM_ID = "system.transportstreamid"

The transport strem id this channel is sent on, used in a broadcast setting.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_TRANSPORT_STREAM_ID.

const string IToiChannelService::PROPERTY_URI = "system.uri"

The uri can be directly used by the media service to open a stream. The format of the URI depends on the delivery system. DVB: it can be DVB.deliverySystemDescriptor.serviceId. IP: it can be IP.multicast ip address. ATSC: For ATSC the URI will have the following format: atsc://fr(frequency).(modulation-format).(program-number)1 It is also possible to add optional parameters to the URL which will be of the form <parameter=value>. For example- atsc://fr(fr).(mf).(pn)[|<parameter=value>[&<parameter=value]*]

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_URI.

const string IToiChannelService::PROPERTY_VISIBLE = "system.visible"

Defines whether the channel is visible or not. "true" means visible, "false" invisible. For DVB, see Nordig.

This constant can also be accessed from toi.consts.IToiChannelService.PROPERTY_VISIBLE.