jack2 codebase
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
2.2KB

  1. /*
  2. Copyright (C) 2004-2006 Grame
  3. This program is free software; you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation; either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program; if not, write to the Free Software
  13. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  14. */
  15. #ifndef __JackSynchro__
  16. #define __JackSynchro__
  17. #include "JackError.h"
  18. #define SYNC_MAX_NAME_SIZE 256
  19. namespace Jack
  20. {
  21. /*!
  22. \brief An inter process synchronization primitive.
  23. */
  24. class JackSynchro
  25. {
  26. protected:
  27. char fName[SYNC_MAX_NAME_SIZE];
  28. bool fFlush; // If true, signal are "flushed" : used for drivers that do no consume the signal
  29. virtual void BuildName(const char* name, char* res)
  30. {}
  31. public:
  32. JackSynchro(): fFlush(false)
  33. {}
  34. virtual ~JackSynchro()
  35. {}
  36. virtual bool Signal()
  37. {
  38. return true;
  39. }
  40. virtual bool SignalAll()
  41. {
  42. return true;
  43. }
  44. virtual bool Wait()
  45. {
  46. return true;
  47. }
  48. virtual bool TimedWait(long usec)
  49. {
  50. return true;
  51. }
  52. virtual bool Allocate(const char* name, int value)
  53. {
  54. return true;
  55. }
  56. virtual bool Connect(const char* name)
  57. {
  58. return true;
  59. }
  60. virtual bool ConnectInput(const char* name)
  61. {
  62. return true;
  63. }
  64. virtual bool ConnectOutput(const char* name)
  65. {
  66. return true;
  67. }
  68. virtual bool Disconnect()
  69. {
  70. return true;
  71. }
  72. virtual void Destroy()
  73. {}
  74. void SetFlush(bool mode)
  75. {
  76. fFlush = mode;
  77. }
  78. };
  79. } // end of namespace
  80. #endif