getPointerArray(0, suggestionsCount);
Pointer p = invokePointer(callFlags, args); if (p != null) { result = p.getPointerArray(0);
Structure[] sarray = (Structure[])result; if (Structure.ByReference.class.isAssignableFrom(cls)) { Pointer[] parray = getPointerArray(offset, sarray.length); for (int i=0;i < sarray.length;i++) { sarray[i] = Structure.updateStructureByReference((Class<Structure>) cls, sarray[i], parray[i]);
private static class MemberOrder { public int first; public int middle; public int last; }
private static List<TrackInfo> getTrackInfo(LibVlc libvlc, libvlc_media_t media, Set<TrackType> types) { PointerByReference tracksPointer = new PointerByReference(); int numberOfTracks = libvlc.libvlc_media_tracks_get(media, tracksPointer); List<TrackInfo> result = new ArrayList<TrackInfo>(numberOfTracks); if (numberOfTracks > 0) { Pointer[] tracks = tracksPointer.getValue().getPointerArray(0, numberOfTracks); for (Pointer track : tracks) { TrackInfo trackInfo = getTrackInfo(libvlc, track, types); if (trackInfo != null) { result.add(trackInfo); } } libvlc.libvlc_media_tracks_release(tracksPointer.getValue(), numberOfTracks); } return result; }
/** * @param word * @return a list of suggested spellings for given (misspelled) word. * If the given word is correct, the list contains only the word itself */ public synchronized List<String> suggest(String word) { requireValidHandle(); if (!isValidInput(word)) { return Collections.emptyList(); } Pointer voikkoSuggestCstr = getLib().voikkoSuggestCstr(handle, s2n(word)); if (voikkoSuggestCstr == null) { return Collections.emptyList(); } Pointer[] pointerArray = voikkoSuggestCstr.getPointerArray(0); List<String> suggestions = new ArrayList<String>(pointerArray.length); for (Pointer cStr : pointerArray) { suggestions.add(stringFromPointer(cStr)); } getLib().voikkoFreeCstrArray(voikkoSuggestCstr); return suggestions; }
getPointerArray(0, suggestionsCount);
static List<TitleDescription> titleDescriptions(LibVlc libvlc, libvlc_media_player_t mediaPlayerInstance) { List<TitleDescription> result; PointerByReference titles = new PointerByReference(); int titleCount = libvlc.libvlc_media_player_get_full_title_descriptions(mediaPlayerInstance, titles); if (titleCount != -1) { result = new ArrayList<TitleDescription>(titleCount); Pointer[] pointers = titles.getValue().getPointerArray(0, titleCount); for (Pointer pointer : pointers) { libvlc_title_description_t titleDescription = Structure.newInstance(libvlc_title_description_t.class, pointer); titleDescription.read(); result.add(new TitleDescription(titleDescription.i_duration, NativeString.copyNativeString(titleDescription.psz_name), titleDescription.b_menu != 0)); } libvlc.libvlc_title_descriptions_release(titles.getValue(), titleCount); } else { result = new ArrayList<TitleDescription>(0); } return result; }
static List<ChapterDescription> chapterDescriptions(LibVlc libvlc, libvlc_media_player_t mediaPlayerInstance, int title) { List<ChapterDescription> result; PointerByReference chapters = new PointerByReference(); int chapterCount = libvlc.libvlc_media_player_get_full_chapter_descriptions(mediaPlayerInstance, title, chapters); if (chapterCount != -1) { result = new ArrayList<ChapterDescription>(chapterCount); Pointer[] pointers = chapters.getValue().getPointerArray(0, chapterCount); for (Pointer pointer : pointers) { libvlc_chapter_description_t chapterDescription = Structure.newInstance(libvlc_chapter_description_t.class, pointer); chapterDescription.read(); result.add(new ChapterDescription(chapterDescription.i_time_offset, chapterDescription.i_duration, NativeString.copyNativeString(chapterDescription.psz_name))); } libvlc.libvlc_chapter_descriptions_release(chapters.getValue(), chapterCount); } else { result = new ArrayList<ChapterDescription>(0); } return result; }
static List<MediaSlave> getMediaSlaves(LibVlc libvlc, libvlc_media_t media) { PointerByReference slavesPointer = new PointerByReference(); int numberOfSlaves = libvlc.libvlc_media_slaves_get(media, slavesPointer); List<MediaSlave> result = new ArrayList<MediaSlave>(numberOfSlaves); if (numberOfSlaves > 0) { Pointer[] pointers = slavesPointer.getValue().getPointerArray(0, numberOfSlaves); for (Pointer pointer : pointers) { libvlc_media_slave_t slave = new libvlc_media_slave_t(pointer); result.add(new MediaSlave(NativeString.copyNativeString(slave.psz_uri), MediaSlaveType.mediaSlaveType(slave.i_type), slave.i_priority)); } } // In this case the native structure must be freed even if the count is zero libvlc.libvlc_media_slaves_release(slavesPointer.getValue(), numberOfSlaves); return result; }
/** * Get the list of renderer discoverer descriptions. * * @return descriptions, will not be <code>null</code> */ public List<RendererDiscovererDescription> discoverers() { PointerByReference ref = new PointerByReference(); size_t size = libvlc.libvlc_renderer_discoverer_list_get(libvlcInstance, ref); try { int count = size.intValue(); List<RendererDiscovererDescription> result = new ArrayList<RendererDiscovererDescription>(count); if (count > 0) { Pointer[] pointers = ref.getValue().getPointerArray(0, count); for (Pointer pointer : pointers) { libvlc_rd_description_t description = Structure.newInstance(libvlc_rd_description_t.class, pointer); description.read(); result.add(new RendererDiscovererDescription(description.psz_name, description.psz_longname)); } } return result; } finally { libvlc.libvlc_renderer_discoverer_list_release(ref.getValue(), size); } }
private GrammarError getGrammarError(VoikkoGrammarError cError, int offset, String language) { final Libvoikko lib = getLib(); int errorCode = lib.voikkoGetGrammarErrorCode(cError); int startPos = lib.voikkoGetGrammarErrorStartPos(cError).intValue(); int errorLength = lib.voikkoGetGrammarErrorLength(cError).intValue(); Pointer cSuggestions = lib.voikkoGetGrammarErrorSuggestions(cError); List<String> suggestions; if (cSuggestions == null) { suggestions = Collections.emptyList(); } else { Pointer[] pointerArray = cSuggestions.getPointerArray(0); suggestions = new ArrayList<String>(pointerArray.length); for (Pointer cStr : pointerArray) { suggestions.add(stringFromPointer(cStr)); } } Pointer cShortDescription = lib.voikkoGetGrammarErrorShortDescription(cError, s2n(language)); String shortDescription = stringFromPointer(cShortDescription); lib.voikkoFreeErrorMessageCstr(cShortDescription); return new GrammarError(errorCode, offset + startPos, errorLength, suggestions, shortDescription); }
for (Pointer cAnalysis : cAnalysisList.getPointerArray(0)) { Pointer cKeys = lib.voikko_mor_analysis_keys(cAnalysis); Analysis analysis = new Analysis(); for (Pointer cKey : cKeys.getPointerArray(0)) { String key = stringFromPointer(cKey); ByteArray value = lib.voikko_mor_analysis_value_cstr(cAnalysis, s2n(key));
/** * Get the list of media discoverer descriptions for a particular category. * * @param category desired category * @return media discoverer descriptions, will not be <code>null</code> */ public List<MediaDiscovererDescription> discoverers(MediaDiscovererCategory category) { PointerByReference ref = new PointerByReference(); size_t size = libvlc.libvlc_media_discoverer_list_get(libvlcInstance, category.intValue(), ref); try { int count = size.intValue(); List<MediaDiscovererDescription> result = new ArrayList<MediaDiscovererDescription>(count); if (count > 0) { Pointer[] pointers = ref.getValue().getPointerArray(0, count); for (Pointer pointer : pointers) { libvlc_media_discoverer_description_t description = Structure.newInstance(libvlc_media_discoverer_description_t.class, pointer); description.read(); result.add(new MediaDiscovererDescription(description.psz_name, description.psz_longname, MediaDiscovererCategory.mediaDiscovererCategory(description.i_cat))); } } return result; } finally { libvlc.libvlc_renderer_discoverer_list_release(ref.getValue(), size); } }
Pointer p = invokePointer(callFlags, args); if (p != null) { result = p.getPointerArray(0);
/** * @param path * @return a list of Dictionary objects representing the available * dictionary variants within given directory and standard search path. */ public static List<Dictionary> listDicts(String path) { Libvoikko lib = getLib(); Pointer cDicts = lib.voikko_list_dicts(s2n(path)); Pointer[] pointerArray = cDicts.getPointerArray(0); List<Dictionary> dicts = new ArrayList<Dictionary>(pointerArray.length); for (Pointer cDict : pointerArray) { dicts.add(new Dictionary(lib.voikko_dict_language(cDict).toString(), lib.voikko_dict_script(cDict).toString(), lib.voikko_dict_variant(cDict).toString(), lib.voikko_dict_description(cDict).toString())); } lib.voikko_free_dicts(cDicts); return dicts; }
Structure[] sarray = (Structure[])result; if (Structure.ByReference.class.isAssignableFrom(cls)) { Pointer[] parray = getPointerArray(offset, sarray.length); for (int i=0;i < sarray.length;i++) { sarray[i] = Structure.updateStructureByReference(cls, sarray[i], parray[i]);
break; case VT_BSTR: sourceArray = dataPointer.getPointerArray(0, elementCount); break; case VT_VARIANT:
Pointer[] rawValue = field1.getPointer().getPointer(0).getPointerArray(0, Count); WinNT.HANDLE[] result = new WinNT.HANDLE[rawValue.length]; for (int i = 0; i < result.length; i++) {