Пример #1
0
void apw_last_change_timer_event(void * object)
{
    APWInternalState state;
    APW apw         = (APW)object;
    APW_Error ec    = check_this(apw);
    if (ec != APW_ERROR_OK) {
        return;
    }
    state           = (APWInternalState)apw->internal_state;
    if (state->last_change_mask != 0) {
        fire_last_change_event(apw);
        state->last_change_mask = 0;
    }

    ILibLifeTime_AddEx(state->apw_monitor, apw, 0, &apw_last_change_timer_event, NULL);
}
Пример #2
0
	__declspec(dllexport) void ILibWrapper_LifeTimeAddEx(void *LifetimeMonitorObject, void *data, int ms, ILibLifeTime_OnCallback Callback, ILibLifeTime_OnCallback Destroy)
	{
		ILibLifeTime_AddEx(LifetimeMonitorObject, data, ms, Callback, Destroy);
	}
Пример #3
0
APW APW_Method_Create(void * chain, ILibThreadPool thread_pool, unsigned short port, char* friendly_name, char * mac_addr, char * pwd)
{
    APW apw = NULL;
    APWInternalState inner_state = NULL;

    apw = (APW)MALLOC(sizeof(struct _APW));
    if (apw == NULL) {
        return NULL;
    }
    inner_state = (APWInternalState)MALLOC(sizeof(struct _APWInternalState));
    if (inner_state == NULL) {
        FREE(apw);
        return NULL;
    }
    inner_state->chain = chain;
    inner_state->airplay_token = AirplayCreate(chain, port, friendly_name, mac_addr, pwd);
    if (inner_state->airplay_token == NULL) { // 发现服务创建失败
        FREE(apw);
        FREE(inner_state);
        return NULL;
    }
    AirplaySetTag(inner_state->airplay_token, (void *)apw);
    inner_state->apw_monitor = ILibCreateLifeTime(inner_state->chain);
    ILibLifeTime_AddEx(inner_state->apw_monitor, apw, 0, &apw_last_change_timer_event, NULL);
    sem_init(&inner_state->resource_lock, 0, 1);

    apw->ILib1 = NULL;
    apw->ILib2 = NULL;
    apw->ILib3 = apw_destroy_from_chain;
    apw->internal_state = (void *)inner_state;
    apw->thread_pool = thread_pool;

    AirplayCallbackGetCurrentTransportActions   = (AirplayHandlerGetCurrentTransportActions )&APW_GetCurrentTransportActions;
    AirplayCallbackGetDeviceCapabilities        = (AirplayHandlerGetDeviceCapabilities      )&APW_GetDeviceCapabilities;
    AirplayCallbackGetMediaInfo                 = (AirplayHandlerGetMediaInfo               )&APW_GetMediaInfo;
    AirplayCallbackGetPositionInfo              = (AirplayHandlerGetPositionInfo            )&APW_GetPositionInfo;
    AirplayCallbackGetTransportInfo             = (AirplayHandlerGetTransportInfo           )&APW_GetTransportInfo;
    AirplayCallbackGetTransportSettings         = (AirplayHandlerGetTransportSettings       )&APW_GetTransportSettings;
    AirplayCallbackNext                         = (AirplayHandlerNext                       )&APW_Next;
    AirplayCallbackPause                        = (AirplayHandlerPause                      )&APW_Pause;
    AirplayCallbackPlay                         = (AirplayHandlerPlay                       )&APW_Play;
    AirplayCallbackPrevious                     = (AirplayHandlerPrevious                   )&APW_Previous;
    AirplayCallbackSeek                         = (AirplayHandlerSeek                       )&APW_Seek;
    AirplayCallbackSetAVTransportURI            = (AirplayHandlerSetAVTransportURI          )&APW_SetAVTransportURI;
    AirplayCallbackSetPlayMode                  = (AirplayHandlerSetPlayMode                )&APW_SetPlayMode;
    AirplayCallbackStop                         = (AirplayHandlerStop                       )&APW_Stop;
    AirplayCallbackGetCurrentConnectionIDs      = (AirplayHandlerGetCurrentConnectionIDs    )&APW_GetCurrentConnectionIDs;
    AirplayCallbackGetCurrentConnectionInfo     = (AirplayHandlerGetCurrentConnectionInfo   )&APW_GetCurrentConnectionInfo;
    AirplayCallbackGetProtocolInfo              = (AirplayHandlerGetProtocolInfo            )&APW_GetProtocolInfo;
    AirplayCallbackListPresets                  = (AirplayHandlerListPresets                )&APW_ListPresets;
    AirplayCallbackSelectPreset                 = (AirplayHandlerSelectPreset               )&APW_SelectPreset;
    AirplayCallbackGetBrightness                = (AirplayHandlerGetBrightness              )&APW_GetBrightness;
    AirplayCallbackGetContrast                  = (AirplayHandlerGetContrast                )&APW_GetContrast;
    AirplayCallbackSetBrightness                = (AirplayHandlerSetBrightness              )&APW_SetBrightness;
    AirplayCallbackSetContrast                  = (AirplayHandlerSetContrast                )&APW_SetContrast;
    AirplayCallbackGetMute                      = (AirplayHandlerGetMute                    )&APW_GetMute;
    AirplayCallbackGetVolume                    = (AirplayHandlerGetVolume                  )&APW_GetVolume;
    AirplayCallbackSetMute                      = (AirplayHandlerSetMute                    )&APW_SetMute;
    AirplayCallbackSetVolume                    = (AirplayHandlerSetVolume                  )&APW_SetVolume;
    AirplayCallbackGetPlayStatus                = (AirplayGetPlayStatus                     )&APW_GetStatus;

    ILibAddToChain(chain, apw);

    return apw;
}