private void SetupAppContext() { if (_connected == false) { _evtAppUserOfflineAvailable.Reset(); _evtAppUserLoginOK.Reset(); Logger.LogTrace("DeezerRenderer::SetupConfig => Creating app context ..."); dz_error_t err; _dzRenderProgressCB = new dz_player_onrenderprogress_cb(OnRenderProgress); _dzPlayerEventCB = new dz_player_onevent_cb(OnPlayerEvent); _dzRendererEventCB = new dz_player_onrendererevent_cb(OnRendererEvent); _dzConnect = DeezerApi.dz_connect_new(_dzConfig); if (_dzConnect == IntPtr.Zero) { DeezerApi.HandleDzErrorCode("dz_connect_new", dz_error_t.DZ_ERROR_CLASS_INSTANTIATION); } //err = DeezerApi.dz_connect_debug_log_disable(_dzConnect); //DeezerApi.HandleDzErrorCode("dz_connect_debug_log_disable", err); err = DeezerApi.dz_connect_activate(_dzConnect, IntPtr.Zero); DeezerApi.HandleDzErrorCode("dz_connect_activate", err); err = DeezerApi.dz_connect_cache_path_set(_dzConnect, null, IntPtr.Zero, USER_CACHE_PATH); DeezerApi.HandleDzErrorCode("dz_connect_cache_path_set", err); _dzPlayer = DeezerApi.dz_player_new(_dzConnect); if (_dzPlayer == IntPtr.Zero) { DeezerApi.HandleDzErrorCode("dz_player_new", dz_error_t.DZ_ERROR_CLASS_INSTANTIATION); } err = DeezerApi.dz_player_activate(_dzPlayer, IntPtr.Zero); DeezerApi.HandleDzErrorCode("dz_player_activate", err); err = DeezerApi.dz_player_set_event_cb(_dzPlayer, _dzPlayerEventCB); DeezerApi.HandleDzErrorCode("dz_player_set_event_cb", err); err = DeezerApi.dz_player_set_render_progress_cb(_dzPlayer, _dzRenderProgressCB, (UInt64)5e5); DeezerApi.HandleDzErrorCode("dz_player_set_render_progress_cb", err); err = DeezerApi.dz_player_set_renderer_event_cb(_dzPlayer, _dzRendererEventCB); DeezerApi.HandleDzErrorCode("dz_player_set_renderer_event_cb", err); string token = ProTONEConfig.DeezerUserAccessToken; err = DeezerApi.dz_connect_set_access_token(_dzConnect, null, IntPtr.Zero, token); DeezerApi.HandleDzErrorCode("dz_connect_set_access_token", err); err = DeezerApi.dz_connect_offline_mode(_dzConnect, null, IntPtr.Zero, false); DeezerApi.HandleDzErrorCode("dz_connect_offline_mode", err); if (_evtAppUserLoginOK.WaitOne(DZ_OPERATION_TIMEOUT) == false) { DeezerApi.HandleDzErrorCode("DeezerRenderer::SetupConfig", dz_error_t.DZ_ERROR_CONNECT_SESSION_LOGIN_FAILED); } _connected = true; } }