/* two design strategies: * - we could keep a reference to PLAYER_EVENT* with dz_object_retain and call method on the fly * - we extract all info in constructor and have pure managed object * * here we keep the second option, because we have to have a managed object anyway, and it's * a lot fewer unsafe method to expose, even though it's making a lot of calls in the constructor.. */ public unsafe static PlayerEvent newFromLibcEvent(PLAYER_EVENT *libcPlayerEventHndl) { PLAYER_EVENT_TYPE eventType; unsafe { eventType = dz_player_event_get_type(libcPlayerEventHndl); } switch (eventType) { default: return(new PlayerEvent(eventType)); } }
static extern unsafe IntPtr dz_player_event_track_selected_next_track_dzapiinfo(PLAYER_EVENT *eventHandle);
static extern unsafe bool dz_player_event_track_selected_rights(PLAYER_EVENT *eventHandle, bool *canPauseUnpause, bool *canSeek, int *numseek);
static extern unsafe bool dz_player_event_track_selected_is_preview(PLAYER_EVENT *eventHandle);
static extern unsafe bool dz_player_event_get_queuelist_context(PLAYER_EVENT *eventHendle, STREAMING_MODE *streamingMode, int *out_idx);
static extern unsafe PLAYER_EVENT_TYPE dz_player_event_get_type(PLAYER_EVENT *dzPlayerEvent);