{"payload":{"allShortcutsEnabled":false,"fileTree":{"":{"items":[{"name":"VisualC","path":"VisualC","contentType":"directory"},{"name":"decoders","path":"decoders","contentType":"directory"},{"name":"playsound","path":"playsound","contentType":"directory"},{"name":"CHANGELOG","path":"CHANGELOG","contentType":"file"},{"name":"COPYING","path":"COPYING","contentType":"file"},{"name":"CREDITS","path":"CREDITS","contentType":"file"},{"name":"CWProject.sit","path":"CWProject.sit","contentType":"file"},{"name":"Doxyfile","path":"Doxyfile","contentType":"file"},{"name":"INSTALL","path":"INSTALL","contentType":"file"},{"name":"Makefile.am","path":"Makefile.am","contentType":"file"},{"name":"PBProjects.tar.gz","path":"PBProjects.tar.gz","contentType":"file"},{"name":"README","path":"README","contentType":"file"},{"name":"SDL_sound.c","path":"SDL_sound.c","contentType":"file"},{"name":"SDL_sound.h","path":"SDL_sound.h","contentType":"file"},{"name":"SDL_sound_internal.h","path":"SDL_sound_internal.h","contentType":"file"},{"name":"TODO","path":"TODO","contentType":"file"},{"name":"acinclude.m4","path":"acinclude.m4","contentType":"file"},{"name":"alt_audio_convert.c","path":"alt_audio_convert.c","contentType":"file"},{"name":"alt_audio_convert.h","path":"alt_audio_convert.h","contentType":"file"},{"name":"audio_convert.c","path":"audio_convert.c","contentType":"file"},{"name":"bootstrap","path":"bootstrap","contentType":"file"},{"name":"borland.zip","path":"borland.zip","contentType":"file"},{"name":"configure.in","path":"configure.in","contentType":"file"},{"name":"extra_rwops.c","path":"extra_rwops.c","contentType":"file"},{"name":"extra_rwops.h","path":"extra_rwops.h","contentType":"file"},{"name":"filter_templates.h","path":"filter_templates.h","contentType":"file"}],"totalCount":26}},"fileTreeProcessingTime":1.954319,"foldersToFetch":[],"repo":{"id":381134740,"defaultBranch":"main","name":"SDL_sound","ownerLogin":"icculus","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-06-28T19:03:09.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/673562?v=4","public":true,"private":false,"isOrgOwned":false},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"fca226e95c9c5df6e4ad120405c9bb206c2e400b","listCacheKey":"v0:1688050168.0","canEdit":false,"refType":"tree","currentOid":"fca226e95c9c5df6e4ad120405c9bb206c2e400b"},"path":"extra_rwops.h","currentUser":null,"blob":{"rawLines":["/*"," * SDL_sound -- An abstract sound format decoding API."," * Copyright (C) 2001 Ryan C. Gordon."," *"," * This library is free software; you can redistribute it and/or"," * modify it under the terms of the GNU Lesser General Public"," * License as published by the Free Software Foundation; either"," * version 2.1 of the License, or (at your option) any later version."," *"," * This library is distributed in the hope that it will be useful,"," * but WITHOUT ANY WARRANTY; without even the implied warranty of"," * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU"," * Lesser General Public License for more details."," *"," * You should have received a copy of the GNU Lesser General Public"," * License along with this library; if not, write to the Free Software"," * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"," */","","/*"," * Some extra RWops that are needed or are just handy to have."," *"," * Please see the file COPYING in the source's root directory."," *"," * This file written by Ryan C. Gordon. (icculus@icculus.org)"," */","","#ifndef _INCLUDE_EXTRA_RWOPS_H_","#define _INCLUDE_EXTRA_RWOPS_H_","","#include \"SDL.h\"","","#ifdef __cplusplus","extern \"C\" {","#endif","","/*"," * The Reference Counter RWops..."," *"," * This wraps another RWops with a reference counter. When you create a"," * reference counter RWops, it sets a counter to one. Everytime you call"," * RWops_RWRefCounter_new(), that's RWops's counter increments by one."," * Everytime you call that RWops's close() method, the counter decrements"," * by one. If the counter hits zero, the original RWops's close() method"," * is called, and the reference counting wrapper deletes itself. The read,"," * write, and seek methods just pass through to the original."," *"," * This is handy if you have two libraries (in the original case, SDL_sound"," * and SMPEG), who both want an SDL_RWops, and both want to close it when"," * they are finished. This resolves that contention. The user creates a"," * RWops, passes it to SDL_sound, which wraps it in a reference counter and"," * increments the number of references, and passes the wrapped RWops to"," * SMPEG. SMPEG \"closes\" this wrapped RWops when the MP3 has finished"," * playing, and SDL_sound then closes it, too. This second closing removes"," * the last reference, and the RWops is smoothly destructed."," */","","/* Return a SDL_RWops that is a reference counting wrapper of (rw). */","SDL_RWops *RWops_RWRefCounter_new(SDL_RWops *rw);","","/* Increment a reference counting RWops's refcount by one. */","void RWops_RWRefCounter_addRef(SDL_RWops *rw);","","#ifdef __cplusplus","}","#endif","","#endif /* !defined _INCLUDE_EXTRA_RWOPS_H_ */","","/* end of extra_rwops.h ... */"],"stylingDirectives":[[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":54,"cssClass":"pl-c"}],[{"start":0,"end":38,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":64,"cssClass":"pl-c"}],[{"start":0,"end":61,"cssClass":"pl-c"}],[{"start":0,"end":63,"cssClass":"pl-c"}],[{"start":0,"end":69,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":66,"cssClass":"pl-c"}],[{"start":0,"end":65,"cssClass":"pl-c"}],[{"start":0,"end":68,"cssClass":"pl-c"}],[{"start":0,"end":50,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":67,"cssClass":"pl-c"}],[{"start":0,"end":70,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":0,"end":3,"cssClass":"pl-c"}],[],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":62,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":62,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":62,"cssClass":"pl-c"}],[{"start":0,"end":3,"cssClass":"pl-c"}],[],[{"start":0,"end":7,"cssClass":"pl-k"},{"start":8,"end":31,"cssClass":"pl-s1"}],[{"start":0,"end":7,"cssClass":"pl-k"},{"start":8,"end":31,"cssClass":"pl-s1"}],[],[{"start":0,"end":8,"cssClass":"pl-k"},{"start":9,"end":16,"cssClass":"pl-s"}],[],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":18,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s"}],[{"start":0,"end":6,"cssClass":"pl-k"}],[],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":33,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":72,"cssClass":"pl-c"}],[{"start":0,"end":74,"cssClass":"pl-c"}],[{"start":0,"end":72,"cssClass":"pl-c"}],[{"start":0,"end":75,"cssClass":"pl-c"}],[{"start":0,"end":74,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":0,"end":63,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":0,"end":75,"cssClass":"pl-c"}],[{"start":0,"end":73,"cssClass":"pl-c"}],[{"start":0,"end":77,"cssClass":"pl-c"}],[{"start":0,"end":73,"cssClass":"pl-c"}],[{"start":0,"end":71,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":0,"end":62,"cssClass":"pl-c"}],[{"start":0,"end":3,"cssClass":"pl-c"}],[],[{"start":0,"end":70,"cssClass":"pl-c"}],[{"start":0,"end":9,"cssClass":"pl-smi"},{"start":10,"end":11,"cssClass":"pl-c1"},{"start":11,"end":33,"cssClass":"pl-en"},{"start":34,"end":43,"cssClass":"pl-smi"},{"start":44,"end":45,"cssClass":"pl-c1"},{"start":45,"end":47,"cssClass":"pl-s1"}],[],[{"start":0,"end":61,"cssClass":"pl-c"}],[{"start":0,"end":4,"cssClass":"pl-smi"},{"start":5,"end":30,"cssClass":"pl-en"},{"start":31,"end":40,"cssClass":"pl-smi"},{"start":41,"end":42,"cssClass":"pl-c1"},{"start":42,"end":44,"cssClass":"pl-s1"}],[],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":18,"cssClass":"pl-s1"},{"start":18,"end":18,"cssClass":"pl-k"}],[],[{"start":0,"end":6,"cssClass":"pl-k"}],[],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":6,"end":45,"cssClass":"pl-c"}],[],[{"start":0,"end":30,"cssClass":"pl-c"}],[]],"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/icculus/SDL_sound/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"extra_rwops.h","displayUrl":"https://github.com/icculus/SDL_sound/blame/fca226e95c9c5df6e4ad120405c9bb206c2e400b/extra_rwops.h?raw=true","headerInfo":{"blobSize":"2.6 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":null,"isGitLfs":false,"onBranch":false,"shortPath":"f86b556","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Ficculus%2FSDL_sound%2Fblame%2Ffca226e95c9c5df6e4ad120405c9bb206c2e400b%2Fextra_rwops.h","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"71","truncatedSloc":"60"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"C","languageID":41,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/icculus/SDL_sound/blame/fca226e95c9c5df6e4ad120405c9bb206c2e400b/extra_rwops.h","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/icculus/SDL_sound/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/icculus/SDL_sound/raw/fca226e95c9c5df6e4ad120405c9bb206c2e400b/extra_rwops.h","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":true,"not_analyzed":false,"symbols":[{"name":"_INCLUDE_EXTRA_RWOPS_H_","kind":"macro","ident_start":1084,"ident_end":1107,"extent_start":1076,"extent_end":1109,"fully_qualified_name":"_INCLUDE_EXTRA_RWOPS_H_","ident_utf16":{"start":{"line_number":28,"utf16_col":8},"end":{"line_number":28,"utf16_col":31}},"extent_utf16":{"start":{"line_number":28,"utf16_col":0},"end":{"line_number":30,"utf16_col":0}}},{"name":"RWops_RWRefCounter_new","kind":"function","ident_start":2401,"ident_end":2423,"extent_start":2401,"extent_end":2438,"fully_qualified_name":"RWops_RWRefCounter_new","ident_utf16":{"start":{"line_number":58,"utf16_col":11},"end":{"line_number":58,"utf16_col":33}},"extent_utf16":{"start":{"line_number":58,"utf16_col":11},"end":{"line_number":58,"utf16_col":48}}},{"name":"RWops_RWRefCounter_addRef","kind":"function","ident_start":2508,"ident_end":2533,"extent_start":2508,"extent_end":2548,"fully_qualified_name":"RWops_RWRefCounter_addRef","ident_utf16":{"start":{"line_number":61,"utf16_col":5},"end":{"line_number":61,"utf16_col":30}},"extent_utf16":{"start":{"line_number":61,"utf16_col":5},"end":{"line_number":61,"utf16_col":45}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"blame":{"ranges":{"1":{"start":1,"oldStart":1,"end":22,"oldEnd":22,"commitOid":"773d0d05a8a62f66d63211f97ac77411371b90f1","reblamePath":null},"23":{"start":23,"oldStart":23,"end":23,"oldEnd":23,"commitOid":"8a396080bdf30c5b1ea5556e8759341b90240adb","reblamePath":"extra_rwops.h"},"24":{"start":24,"oldStart":24,"end":24,"oldEnd":24,"commitOid":"773d0d05a8a62f66d63211f97ac77411371b90f1","reblamePath":null},"25":{"start":25,"oldStart":25,"end":25,"oldEnd":25,"commitOid":"1dba7e554c44c2b16e800fc24ec8d11527ee4a28","reblamePath":"extra_rwops.h"},"26":{"start":26,"oldStart":26,"end":71,"oldEnd":71,"commitOid":"773d0d05a8a62f66d63211f97ac77411371b90f1","reblamePath":null}},"commits":{"773d0d05a8a62f66d63211f97ac77411371b90f1":{"oid":"773d0d05a8a62f66d63211f97ac77411371b90f1","message":"Initial add.","shortMessageHtmlLink":"Initial add.","authorAvatarUrl":"https://avatars.githubusercontent.com/u/673562?s=80&v=4","committerName":"Ryan C. Gordon","committerEmail":"icculus@icculus.org","committedDate":"2001-09-18T10:54:21.000Z","firstParentOid":"21940f7cd4b310ab6146bf9feac228935343ad31"},"8a396080bdf30c5b1ea5556e8759341b90240adb":{"oid":"8a396080bdf30c5b1ea5556e8759341b90240adb","message":"Changed reference to \"LICENSE\" file to \"COPYING\".","shortMessageHtmlLink":"Changed reference to \"LICENSE\" file to \"COPYING\".","authorAvatarUrl":"https://avatars.githubusercontent.com/u/673562?s=80&v=4","committerName":"Ryan C. Gordon","committerEmail":"icculus@icculus.org","committedDate":"2001-12-26T10:40:25.000Z","firstParentOid":"ed847a884fbdaac21e95b824e84745c69a1093de"},"1dba7e554c44c2b16e800fc24ec8d11527ee4a28":{"oid":"1dba7e554c44c2b16e800fc24ec8d11527ee4a28","message":"Updated my email address.","shortMessageHtmlLink":"Updated my email address.","authorAvatarUrl":"https://avatars.githubusercontent.com/u/673562?s=80&v=4","committerName":"Ryan C. Gordon","committerEmail":"icculus@icculus.org","committedDate":"2007-08-06T09:44:02.000Z","firstParentOid":"43103a76e58da6bab3cfd1db9e4cbde465a57088"}},"ignoreRevs":{"path":".git-blame-ignore-revs","present":false,"timedOut":null}},"csrf_tokens":{"/icculus/SDL_sound/branches":{"post":"napGF_EGR2IBWnxL0Y7gcRt2-IkNqcw_g8kgO-1HLRDzdhq8zlKUnaO5ae3lvmkWmSB7l-LL406-ZaagQEYZqg"},"/repos/preferences":{"post":"P7UXxt2PhZWosmnK1qrMQ1QN-uoXy5-L_AHEQhdKeZybLonUvqfTTScsL1mKrKj1amTq5X1z2GRpTmbgnvLCkg"}}},"title":"Blaming SDL_sound/extra_rwops.h at fca226e95c9c5df6e4ad120405c9bb206c2e400b ยท icculus/SDL_sound"}