is_sound_play.go 916 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package is_sound_play
  2. import (
  3. "sync"
  4. )
  5. /*
  6. Потокобезопасный признак проигрывания звука
  7. */
  8. // IsPlay -- потокобезопасный признак проигрывания звука
  9. type IsPlay struct {
  10. val bool
  11. block sync.RWMutex
  12. }
  13. // NewIsPlay -- возвращает новый *IsPlay
  14. func NewIsPlay() *IsPlay {
  15. return &IsPlay{}
  16. }
  17. // Get -- возвращает хранимое состояние
  18. func (сам *IsPlay) Get() bool {
  19. сам.block.RLock()
  20. defer сам.block.RUnlock()
  21. return сам.val
  22. }
  23. // Set -- устанавливает хранимое состояние
  24. func (сам *IsPlay) Set() {
  25. сам.block.Lock()
  26. defer сам.block.Unlock()
  27. сам.val = true
  28. }
  29. // Reset -- сбрасывает хранимое состояние
  30. func (сам *IsPlay) Reset() {
  31. сам.block.Lock()
  32. defer сам.block.Unlock()
  33. сам.val = false
  34. }