Ссылка CMSync
CMSync
API обеспечивает опорный синхрогенератор, который можно использовать для синхронизации приложений и устройств. Этот API также обеспечивает функции для контроля относительного смещения между CMClocks
и функции, связанные со службами таймера.
-
Возвращает ссылку на одноэлементные часы, логически идентифицированные со временем узла.
Объявление
Swift
func CMClockGetHostTimeClock() -> CMClock!
Objective C
CMClockRef CMClockGetHostTimeClock ( void );
Обсуждение
На Mac OS X, использовании таймера узла
mach_absolute_time
но возвращает значение с большим целочисленным масштабом времени (например, наносекунды).Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Преобразовывает время узла из
CMTime
к собственным модулям времени узла.Объявление
Swift
func CMClockConvertHostTimeToSystemUnits(_
hostTime
: CMTime) -> UInt64Objective C
uint64_t CMClockConvertHostTimeToSystemUnits ( CMTime hostTime );
Обсуждение
Эта функция выполняет изменение масштаба, не преобразование часов. Это может быть более точно, чем
CMTimeConvertScale
потому что системные модули могут иметь масштаб времени нецелого числа. На Mac OS X эта функция преобразовывает в модулиmach_absolute_time
.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Преобразовывает время узла от собственных модулей до
CMTime
.Объявление
Swift
func CMClockMakeHostTimeFromSystemUnits(_
hostTime
: UInt64) -> CMTimeObjective C
CMTime CMClockMakeHostTimeFromSystemUnits ( uint64_t hostTime );
Обсуждение
Возвращенное значение будет иметь большой целочисленный масштаб времени (например, наносекунды). Эта функция обрабатывает ситуации, где собственные модули времени узла используют масштаб времени нецелого числа. На Mac OS X эта функция преобразовывает из модулей mach_absolute_time.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Получает текущее время от часов.
Объявление
Swift
func CMClockGetTime(_
clock
: CMClock!) -> CMTimeObjective C
CMTime CMClockGetTime ( CMClockRef clock );
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Получает текущее время от часов и также соответствующее время от опорного синхрогенератора часов.
Объявление
Swift
func CMClockGetAnchorTime(_
clock
: CMClock!, _outClockTime
: UnsafeMutablePointer<CMTime>, _outReferenceClockTime
: UnsafeMutablePointer<CMTime>) -> OSStatusObjective C
OSStatus CMClockGetAnchorTime ( CMClockRef clock, CMTime *outClockTime, CMTime *outReferenceClockTime );
Обсуждение
Для создания практического применения из этого Вы, возможно, должны знать, каков опорный синхрогенератор часов.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Возвращает булевскую переменную, указывающую, возможно ли для двух часов сместиться друг относительно друга.
Объявление
Swift
func CMClockMightDrift(_
clock
: CMClock!, _otherClock
: CMClock!) -> BooleanObjective C
Boolean CMClockMightDrift ( CMClockRef clock, CMClockRef otherClock );
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Заставляет часы прекратить функционировать.
Объявление
Swift
func CMClockInvalidate(_
clock
: CMClock!)Objective C
void CMClockInvalidate ( CMClockRef clock );
Обсуждение
После аннулирования часы возвратят ошибки из всего APIs. Это должен только вызвать «владелец» часов, знающий (например), что некоторая часть аппаратных средств ушла, и часы больше не будут работать (и мог бы даже отказать).
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Создает timebase, управляемый данными часами.
Объявление
Swift
func CMTimebaseCreateWithMasterClock(_
allocator
: CFAllocator!, _masterClock
: CMClock!, _timebaseOut
: UnsafeMutablePointer<Unmanaged<CMTimebase>?>) -> OSStatusObjective C
OSStatus CMTimebaseCreateWithMasterClock ( CFAllocatorRef allocator, CMClockRef masterClock, CMTimebaseRef *timebaseOut );
Обсуждение
timebase будет первоначально иметь нуль уровня и нуль времени. Передача
CMClockGetHostTimeClock
() для masterClock для имения таймера узла управляют этим timebase.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Создает timebase, управляемый данным основным timebase.
Объявление
Swift
func CMTimebaseCreateWithMasterTimebase(_
allocator
: CFAllocator!, _masterTimebase
: CMTimebase!, _timebaseOut
: UnsafeMutablePointer<Unmanaged<CMTimebase>?>) -> OSStatusObjective C
OSStatus CMTimebaseCreateWithMasterTimebase ( CFAllocatorRef allocator, CMTimebaseRef masterTimebase, CMTimebaseRef *timebaseOut );
Обсуждение
timebase будет первоначально иметь нуль уровня и нуль времени.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Возвращает непосредственный основной timebase timebase.
Объявление
Swift
func CMTimebaseGetMasterTimebase(_
timebase
: CMTimebase!) -> CMTimebase!Objective C
CMTimebaseRef CMTimebaseGetMasterTimebase ( CMTimebaseRef timebase );
Обсуждение
Возвраты
NULL
если timebase фактически имеет основной тактовый генератор вместо основного timebase.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Возвращает непосредственный основной тактовый генератор timebase.
Объявление
Swift
func CMTimebaseGetMasterClock(_
timebase
: CMTimebase!) -> CMClock!Objective C
CMClockRef CMTimebaseGetMasterClock ( CMTimebaseRef timebase );
Обсуждение
Возвраты
NULL
если timebase фактически имеет основной timebase вместо основного тактового генератора.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Возвращает непосредственное ведущее устройство (или timebase или часы) timebase.
Объявление
Swift
func CMTimebaseGetMaster(_
timebase
: CMTimebase!) -> CMClockOrTimebase!Objective C
CMClockOrTimebaseRef CMTimebaseGetMaster ( CMTimebaseRef timebase );
Обсуждение
Возвраты
NULL
если была ошибка (такая как timebase == NULL). Пример использования: время =CMSyncGetTime(CMTimebaseGetMaster(timebase));
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Возвращает основной тактовый генератор, который является ведущим устройством всего ведущего устройства timebase timebases.
Объявление
Swift
func CMTimebaseGetUltimateMasterClock(_
timebase
: CMTimebase!) -> CMClock!Objective C
CMClockRef CMTimebaseGetUltimateMasterClock ( CMTimebaseRef timebase );
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Получает текущее время от timebase.
Объявление
Swift
func CMTimebaseGetTime(_
timebase
: CMTimebase!) -> CMTimeObjective C
CMTime CMTimebaseGetTime ( CMTimebaseRef timebase );
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Получает текущее время от timebase в указанном масштабе времени.
Объявление
Swift
func CMTimebaseGetTimeWithTimeScale(_
timebase
: CMTimebase!, _timescale
: CMTimeScale, _method
: CMTimeRoundingMethod) -> CMTimeObjective C
CMTime CMTimebaseGetTimeWithTimeScale ( CMTimebaseRef timebase, CMTimeScale timescale, CMTimeRoundingMethod method );
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Устанавливает текущее время timebase.
Объявление
Objective C
OSStatus CMTimebaseSetTime ( CMTimebaseRef timebase, CMTime time );
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Устанавливает время timebase в определенное основное время.
Объявление
Swift
func CMTimebaseSetAnchorTime(_
timebase
: CMTimebase!, _timebaseTime
: CMTime, _immediateMasterTime
: CMTime) -> OSStatusObjective C
OSStatus CMTimebaseSetAnchorTime ( CMTimebaseRef timebase, CMTime timebaseTime, CMTime immediateMasterTime );
Обсуждение
CMTimebaseGetTime's
с того времени привязки будут интерполированы результаты.CMTimebaseSetTime(timebase, time)
эквивалентно вызовуCMTimebaseSetAnchorTime(timebase, time, CMSyncGetTime(CMTimebaseGetMaster(timebase)))
.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Получает действующий курс timebase.
Объявление
Swift
func CMTimebaseGetRate(_
timebase
: CMTimebase!) -> Float64Objective C
Float64 CMTimebaseGetRate ( CMTimebaseRef timebase );
Обсуждение
Это - уровень относительно его непосредственного основного тактового генератора или timebase. Например, если timebase работает на дважды уровне его ведущего устройства, его уровень 2.0.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Получает текущее время и уровень timebase.
Объявление
Swift
func CMTimebaseGetTimeAndRate(_
timebase
: CMTimebase!, _outTime
: UnsafeMutablePointer<CMTime>, _outRate
: UnsafeMutablePointer<Float64>) -> OSStatusObjective C
OSStatus CMTimebaseGetTimeAndRate ( CMTimebaseRef timebase, CMTime *outTime, Float64 *outRate );
Обсуждение
Можно использовать эту функцию для взятия непротиворечивого снимка двух значений, избегая возможных несоответствий вследствие внешних изменений между извлечением времени и уровнем.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Устанавливает уровень timebase.
Объявление
Swift
func CMTimebaseSetRate(_
timebase
: CMTimebase!, _rate
: Float64) -> OSStatusObjective C
OSStatus CMTimebaseSetRate ( CMTimebaseRef timebase, Float64 rate );
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Устанавливает время timebase в определенное основное время и изменяет уровень в точно то время.
Объявление
Swift
func CMTimebaseSetRateAndAnchorTime(_
timebase
: CMTimebase!, _rate
: Float64, _timebaseTime
: CMTime, _immediateMasterTime
: CMTime) -> OSStatusObjective C
OSStatus CMTimebaseSetRateAndAnchorTime ( CMTimebaseRef timebase, Float64 rate, CMTime timebaseTime, CMTime immediateMasterTime );
Обсуждение
CMTimebaseGetTime's
с того времени привязки будут интерполированы результаты, как будто timebase работал на требуемом уровне с этого времени.CMTimebaseSetRate(timebase, rate)
приблизительно эквивалентно вызовуCMTimebaseSetRateAndAnchorTime(timebase, rate, CMTimebaseGetTime(timebase), CMSyncGetTime(CMTimebaseGetMaster(timebase)))
, за исключением того, чтоCMTimebaseSetRate
не генерирует aTimeJumped
уведомление.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Получает действующую ставку timebase (который комбинирует его уровень с уровнями всего его основного timebases).
Объявление
Swift
func CMTimebaseGetEffectiveRate(_
timebase
: CMTimebase!) -> Float64Objective C
Float64 CMTimebaseGetEffectiveRate ( CMTimebaseRef timebase );
Обсуждение
Вызов
CMTimebaseGetEffectiveRate(timebase)
эквивалентно вызовуCMSyncGetRelativeRate(timebase, CMTimebaseGetUltimateMasterClock(timebase))
.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Добавляет таймер к списку таймеров, которыми управляет timebase.
Объявление
Swift
func CMTimebaseAddTimer(_
timebase
: CMTimebase!, _timer
: CFRunLoopTimer!, _runloop
: CFRunLoop!) -> OSStatusObjective C
OSStatus CMTimebaseAddTimer ( CMTimebaseRef timebase, CFRunLoopTimerRef timer, CFRunLoopRef runloop );
Обсуждение
Таймер должен быть повторением выполненный таймер цикла (с очень длинным интервалом, по крайней мере, пока
kCMTimebaseVeryLongCFTimeInterval
), присоединенный к runloop. timebase сохранит таймер и поддержит его «NextFireDate» согласноCMTime
использование набораCMTimebaseSetTimerNextFireTime
. До первого вызова кCMTimebaseSetTimerNextFireTime
, «NextFireDate» будет установлен в будущее время. runloop, к которому присоединен таймер, должен быть передан в, и timebase сохранит это runloop. Сохраненный runloop будет использоваться для вызоваCFRunLoopWakeUp
(), любое время timebase изменяет дату огня таймера.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Удаляет таймер из списка таймеров, которыми управляет timebase.
Объявление
Swift
func CMTimebaseRemoveTimer(_
timebase
: CMTimebase!, _timer
: CFRunLoopTimer!) -> OSStatusObjective C
OSStatus CMTimebaseRemoveTimer ( CMTimebaseRef timebase, CFRunLoopTimerRef timer );
Обсуждение
timebase больше не будет поддерживать «NextFireDate» таймера. Если таймер будет лишен законной силы, то timebase в конечном счете удалит его из своего списка и выпустит его, даже если не будет вызвана эта функция.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Наборы
CMTime
на временной шкале timebase, в которую должен затем быть запущен таймер.Объявление
Swift
func CMTimebaseSetTimerNextFireTime(_
timebase
: CMTimebase!, _timer
: CFRunLoopTimer!, _fireTime
: CMTime, _flags
: UInt32) -> OSStatusObjective C
OSStatus CMTimebaseSetTimerNextFireTime ( CMTimebaseRef timebase, CFRunLoopTimerRef timer, CMTime fireTime, uint32_t flags );
Обсуждение
Таймер должен быть в списке таймеров, которыми управляет timebase. timebase будет продолжать обновлять «NextFireDate» таймера согласно переходам времени и изменениям действующей ставки. Если fireTime не будет числовым, или если timebase не переместится, то «NextFireDate» будет установлен в будущую дату.
Вследствие способа, которым реализованы CFRunLoopTimers, если таймер проходит через состояние, в котором это вследствие огня, это может стрелять, даже если его перепланируемый перед runloop работает снова. Клиенты должны заботиться, чтобы избежать временно планировать таймеры в прошлом. Например, установите уровень timebase или время перед установкой следующего времени огня таймера при выполнении обоих сразу. (Если установка уровня timebase или время могла бы поместить время огня таймера в прошлом, Вы, возможно, должны установить время огня в kCMTimeInvalid через изменение timebase.)
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Устанавливает таймер для увольнения сразу один раз, переопределяя любого предыдущего
CMTimebaseSetTimerNextFireTime
вызвать.Объявление
Swift
func CMTimebaseSetTimerToFireImmediately(_
timebase
: CMTimebase!, _timer
: CFRunLoopTimer!) -> OSStatusObjective C
OSStatus CMTimebaseSetTimerToFireImmediately ( CMTimebaseRef timebase, CFRunLoopTimerRef timer );
Обсуждение
Таймер должен быть в списке таймеров, которыми управляет timebase. Это эквивалентно вызову
CFRunLoopTimerSetNextFireDate( timer, CFAbsoluteTimeGetCurrent() );
за исключением того, что timebase узнает это, он не должен вмешиваться.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Добавляет источник отгрузки таймера к списку таймеров, которыми управляет timebase.
Объявление
Swift
func CMTimebaseAddTimerDispatchSource(_
timebase
: CMTimebase!, _timerSource
: dispatch_source_t!) -> OSStatusObjective C
OSStatus CMTimebaseAddTimerDispatchSource ( CMTimebaseRef timebase, dispatch_source_t timerSource );
Обсуждение
Источник таймера, должно быть, был создан путем вызова
dispatch_source_create
(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, some_dispatch_queue), и должны были связать обработчик событий с ним черезdispatch_source_set_event_handler
(timerSource, some_handler_block) илиdispatch_source_set_event_handler_f
(timerSource, some_handler_function). Не забывайте вызыватьdispatch_resume
(timerSource) как источники отгрузки создаются в состоянии ожидания. timebase сохранит источник таймера и поддержит его время начала согласноCMTime
использование набораCMTimebaseSetTimerDispatchSourceNextFireTime
. До первого вызова кCMTimebaseSetTimerDispatchSourceNextFireTime
, время начала будет установлено вDISPATCH_TIME_FOREVER
. Для получения дополнительной информации об отгрузке источники видят Источники Отгрузки.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Удаляет источник отгрузки таймера из списка таймеров, которыми управляет timebase.
Объявление
Swift
func CMTimebaseRemoveTimerDispatchSource(_
timebase
: CMTimebase!, _timerSource
: dispatch_source_t!) -> OSStatusObjective C
OSStatus CMTimebaseRemoveTimerDispatchSource ( CMTimebaseRef timebase, dispatch_source_t timerSource );
Обсуждение
timebase больше не будет поддерживать время начала источника таймера. Если источник таймера будет отменен, то timebase в конечном счете удалит его из своего списка и выпустит его, даже если не будет вызвана эта функция.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
CMTimebaseSetTimerDispatchSourceNextFireTime (_: _: _: _:) CMTimebaseSetTimerDispatchSourceNextFireTime
Наборы
CMTime
на временной шкале timebase, в которую источник отгрузки таймера должен быть запущен затем.Объявление
Swift
func CMTimebaseSetTimerDispatchSourceNextFireTime(_
timebase
: CMTimebase!, _timerSource
: dispatch_source_t!, _fireTime
: CMTime, _flags
: UInt32) -> OSStatusObjective C
OSStatus CMTimebaseSetTimerDispatchSourceNextFireTime ( CMTimebaseRef timebase, dispatch_source_t timerSource, CMTime fireTime, uint32_t flags );
Обсуждение
Источник таймера должен быть в списке таймеров, которыми управляет timebase. timebase будет продолжать обновлять время начала источника отгрузки таймера согласно переходам времени и изменениям действующей ставки. Если
fireTime
не является числовым, или если timebase не переместится, то время начала будет установлено вDISPATCH_TIME_FOREVER
.Вследствие способа, которым реализованы источники отгрузки таймера, если таймер проходит через состояние, в котором это вследствие огня, это может стрелять, даже если выполняется его перепланируемый перед обработчиком событий. Клиенты должны заботиться, чтобы избежать временно планировать таймеры в прошлом. Например, установите уровень timebase или время перед установкой следующего времени огня таймера при выполнении обоих сразу. (Если установка уровня timebase или время могла бы поместить время огня таймера в прошлом, Вы, возможно, должны установить время огня в kCMTimeInvalid через изменение timebase.)
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
CMTimebaseSetTimerDispatchSourceToFireImmediately (_: _:) CMTimebaseSetTimerDispatchSourceToFireImmediately
Устанавливает источник отгрузки таймера для увольнения сразу один раз, переопределяя любого предыдущего
CMTimebaseSetTimerDispatchSourceNextFireTime
вызвать.Объявление
Swift
func CMTimebaseSetTimerDispatchSourceToFireImmediately(_
timebase
: CMTimebase!, _timerSource
: dispatch_source_t!) -> OSStatusObjective C
OSStatus CMTimebaseSetTimerDispatchSourceToFireImmediately ( CMTimebaseRef timebase, dispatch_source_t timerSource );
Обсуждение
Источник таймера должен быть в списке таймеров, которыми управляет timebase. Это эквивалентно вызову
dispatch_source_set_timer(timerSource, DISPATCH_TIME_NOW, 0, 0 )
; за исключением того, что timebase узнает это, он не должен вмешиваться.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Запрашивает относительный уровень одного timebase или часов относительно другого timebase или часов.
Объявление
Swift
func CMSyncGetRelativeRate(_
ofClockOrTimebase
: CMClockOrTimebase!, _relativeToClockOrTimebase
: CMClockOrTimebase!) -> Float64Objective C
Float64 CMSyncGetRelativeRate ( CMClockOrTimebaseRef ofClockOrTimebase, CMClockOrTimebaseRef relativeToClockOrTimebase );
Обсуждение
Если у обоих есть общее ведущее устройство, это вычисление выполняется чисто основанное, уровни в общем дереве базировались в том ведущем устройстве. Если у них есть различные основные тактовые генераторы (или оба часы), это вычисление принимает во внимание измеренное смещение между двумя часами, с помощью времени узла в качестве центра. Уровнем перемещения timebase относительно остановленного timebase является NaN. Вызов
CMTimebaseGetEffectiveRate(timebase)
эквивалентно вызовуCMSyncGetRelativeRate(timebase, CMTimebaseGetUltimateMasterClock(timebase)
).Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Запрашивает относительный уровень одного timebase или часов относительно другого timebase или часов и времена каждого timebase или часов, в которых вступил в силу относительный уровень.
Объявление
Swift
func CMSyncGetRelativeRateAndAnchorTime(_
ofClockOrTimebase
: CMClockOrTimebase!, _relativeToClockOrTimebase
: CMClockOrTimebase!, _outRelativeRate
: UnsafeMutablePointer<Float64>, _outOfClockOrTimebaseAnchorTime
: UnsafeMutablePointer<CMTime>, _outRelativeToClockOrTimebaseAnchorTime
: UnsafeMutablePointer<CMTime>) -> OSStatusObjective C
OSStatus CMSyncGetRelativeRateAndAnchorTime ( CMClockOrTimebaseRef ofClockOrTimebase, CMClockOrTimebaseRef relativeToClockOrTimebase, Float64 *outRelativeRate, CMTime *outOfClockOrTimebaseAnchorTime, CMTime *outRelativeToClockOrTimebaseAnchorTime );
Обсуждение
Если у обоих есть общее ведущее устройство, это вычисление выполняется чисто основанное, уровни в общем дереве базировались в том ведущем устройстве. Если у них есть различные основные тактовые генераторы (или оба часы), это вычисление принимает во внимание измеренное смещение между двумя часами, с помощью времени узла в качестве центра. Уровнем перемещения timebase относительно остановленного timebase является NaN.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Преобразовывает время из одного timebase или часов к другому timebase или часов.
Объявление
Swift
func CMSyncConvertTime(_
time
: CMTime, _fromClockOrTimebase
: CMClockOrTimebase!, _toClockOrTimebase
: CMClockOrTimebase!) -> CMTimeObjective C
CMTime CMSyncConvertTime ( CMTime time, CMClockOrTimebaseRef fromClockOrTimebase, CMClockOrTimebaseRef toClockOrTimebase );
Обсуждение
Если и иметь общее ведущее устройство, это вычисление выполняется чисто основанное, математические уровни и смещения в общем дереве базировались в том ведущем устройстве. Если у них есть различные основные тактовые генераторы (или оба часы), это вычисление также компенсирует измеренное смещение между часами. Преобразовать в или со времени узла, передачи
CMClockGetHostTimeClock
() как надлежащий параметр.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Возвращает булевскую переменную, указывающую, возможно ли для одного timebase/clock сместиться относительно другого.
Объявление
Swift
func CMSyncMightDrift(_
clockOrTimebase1
: CMClockOrTimebase!, _clockOrTimebase2
: CMClockOrTimebase!) -> BooleanObjective C
Boolean CMSyncMightDrift ( CMClockOrTimebaseRef clockOrTimebase1, CMClockOrTimebaseRef clockOrTimebase2 );
Обсуждение
timebase может сместиться относительно другого, если с ними в конечном счете осваивают часы, которые могут сместиться друг относительно друга.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Функция помощника для получения времени от часов или timebase.
Объявление
Swift
func CMSyncGetTime(_
clockOrTimebase
: CMClockOrTimebase!) -> CMTimeObjective C
CMTime CMSyncGetTime ( CMClockOrTimebaseRef clockOrTimebase );
Обсуждение
CMSyncGetTime
просто вызовы такжеCMClockGetTime
илиCMTimebaseGetTime
, как надлежащий. Это пригождается для вещей как:CMSyncGetTime(CMTimebaseGetMaster(timebase)
).Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Запросы, что timebase ожидают, пока это не отправляет уведомлений.
Объявление
Swift
func CMTimebaseNotificationBarrier(_
timebase
: CMTimebase!) -> OSStatusObjective C
OSStatus CMTimebaseNotificationBarrier ( CMTimebaseRef timebase );
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Определяет очень долгое прошедшее время в секундах.
Объявление
Objective C
#define kCMTimebaseVeryLongCFTimeInterval (CFTimeInterval)(256.0 * 365.0 * 24.0 * 60.0 * 60.0)
-
Возвращает отдельный момент времени в далеком, далеком будущем.
Объявление
Objective C
#define kCMTimebaseFarFutureCFAbsoluteTime (( CFAbsoluteTime )kCMTimebaseVeryLongCFTimeInterval)
-
Объект источника синхронизации.
Объявление
Swift
typealias CMClockRef = CMClock
Objective C
typedef struct OpaqueCMClock* CMClockRef;
Обсуждение
Часы представляют источник информации времени: обычно, часть аппаратных средств, измеряющих течение времени. Одним примером часов является таймер узла, доступный через
CMClockGetHostTimeClock
. Это измеряет время с помощью системных часов CPU, которые на Mac OS X являютсяmach_absolute_time()
. Каждое аудиоустройство можно также считать часами начиная с аудиосэмплов, которые оно выводит или вводит, у каждого есть определенная продолжительность (например, 1/48000 секунды для аудио на 48 кГц).CMClocks
только для чтения: они не могут быть остановлены или запущены, и текущее время не может быть установлено. ACMClock
имеет одну первичную функцию,CMClockGetTime
, который говорит, во сколько это теперь. Кроме того,CMSync
инфраструктура контролирует относительное смещение междуCMClocks
.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Моделирует временную шкалу при управлении приложениями.
Объявление
Swift
typealias CMTimebaseRef = CMTimebase
Objective C
typedef struct OpaqueCMTimebase* CMTimebaseRef;
Обсуждение
timebase представляет временную шкалу, которой клиенты могут управлять путем установки уровня и время. Каждый timebase имеет или основной тактовый генератор или основной timebase. Уровень timebase выражен относительно его ведущего устройства.
Когда timebase имеет уровень 0.0, его время установлено и не изменяется, когда изменяется время его ведущего устройства. Когда timebase имеет уровень 1.0, его время увеличивает одну секунду, как время его ведущего устройства увеличивается на одну секунду. Когда timebase имеет уровень 2.0, его время увеличивает две секунды, как время его ведущего устройства увеличивается на одну секунду. Когда timebase имеет уровень-1.0, его время уменьшает одну секунду, когда время его ведущего устройства увеличивается на одну секунду.
Если timebase имеет основной timebase, уровень основного timebase является фактором в устанавливании действующего курса timebase. Фактически, действующая ставка timebase определяется как продукт ее уровня, уровня ее основного timebase, уровня основного timebase его основного timebase, и т.д. до окончательного основного тактового генератора. Это - уровень, на котором время timebase изменяется относительно окончательного основного тактового генератора.
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Используемый в списках аргументов и функции заканчивается, чтобы указать, что любой может быть передан
Объявление
Swift
typealias CMClockOrTimebaseRef = CMClockOrTimebase
Objective C
typedef CFTypeRef CMClockOrTimebaseRef;
Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.8 и позже.
-
Следующие константы представляют ошибки в Базовых операциях часов Носителей.
Объявление
Swift
var kCMClockError_MissingRequiredParameter: Int { get } var kCMClockError_InvalidParameter: Int { get } var kCMClockError_AllocationFailed: Int { get } var kCMClockError_UnsupportedOperation: Int { get }
Objective C
enum { kCMClockError_MissingRequiredParameter = -12745, kCMClockError_InvalidParameter = -12746, kCMClockError_AllocationFailed = -12747, kCMClockError_UnsupportedOperation = -12756, };
Константы
-
kCMClockError_MissingRequiredParameter
kCMClockError_MissingRequiredParameter
Указывает, что отсутствует обязательный параметр.
Доступный в OS X v10.8 и позже.
-
kCMClockError_InvalidParameter
kCMClockError_InvalidParameter
Указывает a
NULL
или 0 был передан для обязательного параметра.Доступный в OS X v10.8 и позже.
-
kCMClockError_AllocationFailed
kCMClockError_AllocationFailed
Указывает неработающее выделение памяти.
Доступный в OS X v10.8 и позже.
-
kCMClockError_UnsupportedOperation
kCMClockError_UnsupportedOperation
Указывает, что не поддерживается требуемая работа.
Доступный в OS X v10.8 и позже.
-
-
Следующие константы представляют ошибки в базовых операциях основы времени носителей.
Объявление
Swift
var kCMTimebaseError_MissingRequiredParameter: Int { get } var kCMTimebaseError_InvalidParameter: Int { get } var kCMTimebaseError_AllocationFailed: Int { get } var kCMTimebaseError_TimerIntervalTooShort: Int { get } var kCMTimebaseError_ReadOnly: Int { get }
Objective C
enum { kCMTimebaseError_MissingRequiredParameter = -12748, kCMTimebaseError_InvalidParameter = -12749, kCMTimebaseError_AllocationFailed = -12750, kCMTimebaseError_TimerIntervalTooShort = -12751, kCMTimebaseError_ReadOnly = -12757, };
Константы
-
kCMTimebaseError_MissingRequiredParameter
kCMTimebaseError_MissingRequiredParameter
Указывает, что отсутствует обязательный параметр.
Доступный в OS X v10.8 и позже.
-
kCMTimebaseError_InvalidParameter
kCMTimebaseError_InvalidParameter
Указывает a
NULL
или 0 был передан для обязательного параметра.Доступный в OS X v10.8 и позже.
-
kCMTimebaseError_AllocationFailed
kCMTimebaseError_AllocationFailed
Указывает неработающее выделение памяти.
Доступный в OS X v10.8 и позже.
-
kCMTimebaseError_TimerIntervalTooShort
kCMTimebaseError_TimerIntervalTooShort
Указывает, что предоставленный временной интервал слишком короток.
Доступный в OS X v10.8 и позже.
-
kCMTimebaseError_ReadOnly
kCMTimebaseError_ReadOnly
Указывает, что была предпринята попытка для изменения timebase только для чтения.
Доступный в OS X v10.8 и позже.
-
-
Эти после констант представляют коды ошибки, возвращенные базовыми операциями синхронизации носителей.
Объявление
Swift
var kCMSyncError_MissingRequiredParameter: Int { get } var kCMSyncError_InvalidParameter: Int { get } var kCMSyncError_AllocationFailed: Int { get } var kCMSyncError_RateMustBeNonZero: Int { get }
Objective C
enum { kCMSyncError_MissingRequiredParameter = -12752, kCMSyncError_InvalidParameter = -12753, kCMSyncError_AllocationFailed = -12754, kCMSyncError_RateMustBeNonZero = -12755, };
Константы
-
kCMSyncError_MissingRequiredParameter
kCMSyncError_MissingRequiredParameter
Указывает, что отсутствует обязательный параметр.
Доступный в OS X v10.8 и позже.
-
kCMSyncError_InvalidParameter
kCMSyncError_InvalidParameter
Указывает a
NULL
или 0 был передан для обязательного параметра.Доступный в OS X v10.8 и позже.
-
kCMSyncError_AllocationFailed
kCMSyncError_AllocationFailed
Указывает неработающее выделение памяти.
Доступный в OS X v10.8 и позже.
-
kCMSyncError_RateMustBeNonZero
kCMSyncError_RateMustBeNonZero
Указывает, что предоставленный уровень является нулем.
Доступный в OS X v10.8 и позже.
-
-
Ключи, представляющие уведомления основы времени.
Объявление
Swift
let kCMTimebaseNotification_EffectiveRateChanged: CFString! let kCMTimebaseNotification_TimeJumped: CFString!
Objective C
const CFStringRef kCMTimebaseNotification_EffectiveRateChanged const CFStringRef kCMTimebaseNotification_TimeJumped
Константы
-
kCMTimebaseNotification_EffectiveRateChanged
kCMTimebaseNotification_EffectiveRateChanged
Отправленный timebase после изменения в действующей ставке.
Доступный в OS X v10.8 и позже.
-
kCMTimebaseNotification_TimeJumped
kCMTimebaseNotification_TimeJumped
Отправленный timebase после прерывистого перехода времени.
Доступный в OS X v10.8 и позже.
-