Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.17. Работа с глобальными данными схемы
А.5.17.5. rdsSGPSetData – запись значения глобального параметра
Функция rdsSGPSetData устанавливает значение глобального параметра схемы по его имени или целому идентификатору.
BOOL RDSCALL rdsSGPSetDataA( RDS_PSGPDATA Data // Указатель на структуру описания параметра (имя параметра - UTF8) ); BOOL RDSCALL rdsSGPSetDataW( RDS_PSGPDATA Data // Указатель на структуру описания параметра (имя параметра - UTF16) ); // Функция-псевдоним BOOL RDSCALL rdsSGPSetData( RDS_PSGPDATA Data // Указатель на структуру описания параметра (имя параметра - кодировка по умолчанию) );
Тип указателя на эту функцию
RDS_BSgp
Параметры
- Data (RDS_PSGPDATA)
- Указатель на структуру описания параметра с заполненными полями.
Возвращаемое значение
TRUE – значение параметра успешно установлено, FALSE – в ненулевом поле структуры Id передан идентификатор несуществующего параметра.
Примечания
Перед вызовом этой функции в структуре RDS_SGPDATA, указатель на которую передается в параметре, должно быть заполнено поле размера servSize и поля, указывающих на конкретный параметр: Id или NameA/NameW/Name. (это структура со строковыми полями, поэтому в ней есть поля для двух разных кодировок). Если в поле Id записано ненулевое значение, поиск уже существующего параметра в схеме будет осуществляться по этому полю. Если же Id==0, то, в зависимости от суффикса вызванной функции, поиск параметра будет осуществляться по его имени из поля
- для rdsSGPSetDataA – из поля NameA в кодировке UTF8;
- для rdsSGPSetDataW – из поля NameW в кодировке UTF16;
- для функции-псевдонима rdsSGPSetData – из поля-псевдонима Name в кодировке по умолчанию.
При этом, если параметр с данным именем не будет найден, он будет создан, его имя зарегистрировано в RDS, и полученный при регистрации идентификатор записан в поле Id переданной структуры.
В структуре RDS_SGPDATA, указатель на которую передан в параметре Data, помимо идентификатора или имени параметра должно быть заполнено поле Type, указывающее на тип значения параметра, и поля значения, соответствующие этому типу:
- для присвоения параметру целого числа: в поле в поле Type записывается RDS_VARTYPE_INT, в поле IntValue – значение;
- для присвоения параметру вещественного числа: в поле в поле Type записывается RDS_VARTYPE_DOUBLE, в поле DoubleValue – значение;
- для присвоения параметру строки: в поле в поле Type записывается RDS_VARTYPE_STRING, в поле StrValueA (в кодировке UTF8 при вызове rdsSGPSetDataA), StrValueW (в кодировке UTF16 при вызове rdsSGPSetDataW) или StrValue (в кодировке по умолчанию при вызове функции-псевдонима rdsSGPSetData) – указатель на строку, которая бужет скопирована в значение параметра;
- для присвоения параметру блока двоичных данных: в поле в поле Type записывается RDS_VARTYPE_BINARY, в поле Bytes – указатель на начало блока данных, в поле BytesCount – длина блока в байтах (блок будт скопирован в значение параметра).
Если в результате вызова функции значение параметра изменилось, модели всех блоков схемы будут вызваны для реакции на событие RDS_BFM_GLOBALPARAMCHANGE.
См. также
rdsSGPGetData, rdsSGPRegisterName, RDS_SGPDATA, RDS_BFM_GLOBALPARAMCHANGE,.