Load this playable audio

Property definitions

app $ PlayableAudio :: load
	# Load this playable audio
	fun load do end
lib/app/audio.nit:43,2--44,16

ios :: audio $ PlayableAudio :: load
	redef fun load do native
lib/ios/audio.nit:51,2--25

linux :: audio $ Sound :: load
	redef fun load
	do
		if not fs_path_exists then return

		# SDL2 mixer load
		var native = mix.load_wav(fs_path.to_cstring)
		if native.address_is_null then
			error = new Error("Failed to load sound '{path}': {mix.error}")
			return
		end

		self.native = native
	end
lib/linux/audio.nit:45,2--57,4

android :: audio $ Sound :: load
	redef fun load do
		if is_loaded then return

		# Try resources (res)
		var rid = app.default_soundpool.load_name_rid(app.resource_manager, app.native_activity, path.strip_extension)
		if rid > 0 then
			self.soundpool_id = rid
			self.soundpool = app.default_soundpool
			self.error = null
			self.soundpool.error = null
		else
			# Try assets
			var nam = app.asset_manager.open_fd(path)
			if nam.is_java_null then
				self.error = new Error("Failed to get file descriptor for " + path)
			else
				var retval_assets = app.default_soundpool.load_asset_fd_rid(nam)
				nam.close
				if retval_assets == -1 then
					self.error = new Error("Failed to load " + path)
				else
					self.soundpool_id = retval_assets
					self.soundpool = app.default_soundpool
					self.error = null
					self.soundpool.error = null
				end
			end
		end
		is_loaded = true

		var error = error
		if error != null then print_error error
	end
lib/android/audio.nit:543,2--575,4

linux :: audio $ Music :: load
	redef fun load
	do
		if not fs_path_exists then return

		# SDL2 mixer load
		var native = mix.load_mus(fs_path.to_cstring)
		if native.address_is_null then
			error = new Error("Failed to load music '{path}': {mix.error}")
			return
		end

		self.native = native
	end
lib/linux/audio.nit:92,2--104,4

android :: audio $ Music :: load
	redef fun load do
		if is_loaded then return

		# Try resources (res)
		var rid = app.resource_manager.raw_id(path.strip_extension)
		if rid > 0 then
			var mp_sound_resources = app.default_mediaplayer.load_sound(rid, app.native_activity)
			if mp_sound_resources.error != null then
				self.media_player = app.default_mediaplayer
				self.error = null
				self.media_player.error = null
			end
			self.error = mp_sound_resources.error
		else
			# Try assets
			var nam = app.asset_manager.open_fd(path)
			if nam.is_java_null then
				self.error = new Error("Failed to get file descriptor for " + path)
			else
				var mp_sound_assets = app.default_mediaplayer.data_source_fd(nam)
				nam.close
				if mp_sound_assets.error != null then
					self.error = mp_sound_assets.error
				else
					self.media_player = app.default_mediaplayer
					self.error = null
					self.media_player.error = null
				end
			end
		end
		is_loaded = true

		var error = error
		if error != null then print_error error
	end
lib/android/audio.nit:615,2--649,4