ebiten/exp/audio/audio.go

59 lines
2.0 KiB
Go
Raw Normal View History

2015-01-10 17:23:43 +01:00
// Copyright 2015 Hajime Hoshi
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
2015-01-23 15:04:56 +01:00
package audio
2015-01-10 17:23:43 +01:00
import (
2015-07-22 16:27:50 +02:00
"github.com/hajimehoshi/ebiten/exp/audio/inner"
2015-01-10 17:23:43 +01:00
)
2015-01-24 07:48:48 +01:00
// SampleRate returns the sampling frequency (e.g. 44100).
2015-01-23 15:04:56 +01:00
func SampleRate() int {
2015-01-27 15:00:41 +01:00
return internal.SampleRate
2015-01-10 17:23:43 +01:00
}
2015-01-11 11:52:11 +01:00
2015-01-24 07:48:48 +01:00
// MaxChannel is a max number of channels.
2015-01-27 15:00:41 +01:00
var MaxChannel = internal.MaxChannel
2015-01-24 07:48:48 +01:00
// Play appends the given data to the given channel.
//
// channel must be -1 or a channel index. If channel is -1, an empty channel is automatically selected.
// If the channel is not empty, this function does nothing and returns false. This returns true otherwise.
//
// data's format must be linear PCM (44100Hz, 16bits, 2 channel stereo, little endian).
//
2015-01-24 07:48:48 +01:00
// This function is useful to play SE or a note of PCM synthesis immediately.
func Play(channel int, data []byte) bool {
return internal.Play(channel, data)
2015-01-24 07:48:48 +01:00
}
// Queue queues the given data to the given channel.
// The given data is queued to the end of the buffer and not played immediately.
//
// channel must be a channel index. You can't give -1 to channel.
//
// data's format must be linear PCM (44100Hz, 16bits, 2 channel stereo, little endian).
//
2015-01-24 07:48:48 +01:00
// This function is useful to play streaming data.
func Queue(channel int, data []byte) {
internal.Queue(channel, data)
2015-01-22 19:02:23 +01:00
}
2015-01-24 13:46:30 +01:00
// IsPlaying returns a boolean value which indicates if the channel buffer has data to play.
func IsPlaying(channel int) bool {
2015-01-27 15:00:41 +01:00
return internal.IsPlaying(channel)
2015-01-11 11:52:11 +01:00
}
// TODO: Add Clear function