Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы CoreMedia ссылка CMSync

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка CMSync

CMSync API обеспечивает опорный синхрогенератор, который можно использовать для синхронизации приложений и устройств. Этот API также обеспечивает функции для контроля относительного смещения между CMClocks и функции, связанные со службами таймера.

Функции

  • Возвраты CFTypeID из CMClock.

    Объявление

    Swift

    func CMClockGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CMClockGetTypeID ( void );

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.8 и позже.

  • Возвращает ссылку на одноэлементные часы, логически идентифицированные со временем узла.

    Объявление

    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) -> UInt64

    Objective 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) -> CMTime

    Objective 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!) -> CMTime

    Objective 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>) -> OSStatus

    Objective 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!) -> Boolean

    Objective 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 и позже.

  • Возвраты CFTypeID для CMTimebase.

    Объявление

    Swift

    func CMTimebaseGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CMTimebaseGetTypeID ( void );

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.8 и позже.

  • Создает timebase, управляемый данными часами.

    Объявление

    Swift

    func CMTimebaseCreateWithMasterClock(_ allocator: CFAllocator!, _ masterClock: CMClock!, _ timebaseOut: UnsafeMutablePointer<Unmanaged<CMTimebase>?>) -> OSStatus

    Objective 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>?>) -> OSStatus

    Objective 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!) -> CMTime

    Objective 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) -> CMTime

    Objective C

    CMTime CMTimebaseGetTimeWithTimeScale ( CMTimebaseRef timebase, CMTimeScale timescale, CMTimeRoundingMethod method );

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.8 и позже.

  • Устанавливает текущее время timebase.

    Объявление

    Swift

    func CMTimebaseSetTime(_ timebase: CMTimebase!, _ time: CMTime) -> OSStatus

    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) -> OSStatus

    Objective 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!) -> Float64

    Objective 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>) -> OSStatus

    Objective 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) -> OSStatus

    Objective 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) -> OSStatus

    Objective 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 не генерирует a TimeJumped уведомление.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.8 и позже.

  • Получает действующую ставку timebase (который комбинирует его уровень с уровнями всего его основного timebases).

    Объявление

    Swift

    func CMTimebaseGetEffectiveRate(_ timebase: CMTimebase!) -> Float64

    Objective 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!) -> OSStatus

    Objective 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!) -> OSStatus

    Objective 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) -> OSStatus

    Objective 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!) -> OSStatus

    Objective 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!) -> OSStatus

    Objective 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!) -> OSStatus

    Objective C

    OSStatus CMTimebaseRemoveTimerDispatchSource ( CMTimebaseRef timebase, dispatch_source_t timerSource );

    Обсуждение

    timebase больше не будет поддерживать время начала источника таймера. Если источник таймера будет отменен, то timebase в конечном счете удалит его из своего списка и выпустит его, даже если не будет вызвана эта функция.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.8 и позже.

  • Наборы CMTime на временной шкале timebase, в которую источник отгрузки таймера должен быть запущен затем.

    Объявление

    Swift

    func CMTimebaseSetTimerDispatchSourceNextFireTime(_ timebase: CMTimebase!, _ timerSource: dispatch_source_t!, _ fireTime: CMTime, _ flags: UInt32) -> OSStatus

    Objective 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 и позже.

  • Устанавливает источник отгрузки таймера для увольнения сразу один раз, переопределяя любого предыдущего CMTimebaseSetTimerDispatchSourceNextFireTime вызвать.

    Объявление

    Swift

    func CMTimebaseSetTimerDispatchSourceToFireImmediately(_ timebase: CMTimebase!, _ timerSource: dispatch_source_t!) -> OSStatus

    Objective 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!) -> Float64

    Objective 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>) -> OSStatus

    Objective 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!) -> CMTime

    Objective 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!) -> Boolean

    Objective 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!) -> CMTime

    Objective 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!) -> OSStatus

    Objective 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 только для чтения: они не могут быть остановлены или запущены, и текущее время не может быть установлено. A CMClock имеет одну первичную функцию, 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 и позже.