# Path: e3d/Base3DObjectClass.py
# class Attachable(object):
#     def _getParent(self):
#         return self._parent
# 
#     parent = property(_getParent)
# 
#     def __init__(self, parent):
#         self._children = []
#         self._parent = None
#         if parent is not None:
#             self.attachTo(parent)
# 
#     def attachTo(self, parent):
#         if parent is not None:
#             if issubclass(type(parent), Attachable):
#                 if self._parent is not None:
#                     try:
#                         self._parent._children.pop(self._parent._children.index(self._children))
#                     except Exception:
#                         pass
#                 if self in parent._children:
#                     return
#                 parent._children.append(self)
#                 parent._dirty = True
#                 self._parent = parent
#             else:
#                 raise TypeError('"parent" object can\'t receive attached objects.')
#         else:
#             raise AttributeError('"parent" object is None.')


from hissing import Sound as HS
from ..Base3DObjectClass import Attachable



class Sound(HS, Attachable):
    def __init__(self, parent, manager, filePath, isStream, bufferSize, maxBufferNumber):
        """

        @type buffer: audio.SoundData
        """
        HS.__init__(self, manager, filePath, isStream, bufferSize, maxBufferNumber)

# Path: e3d/Base3DObjectClass.py
# class Attachable(object):
#     def _getParent(self):
#         return self._parent
# 
#     parent = property(_getParent)
# 
#     def __init__(self, parent):
#         self._children = []
#         self._parent = None
#         if parent is not None:
#             self.attachTo(parent)
# 
#     def attachTo(self, parent):
#         if parent is not None:
#             if issubclass(type(parent), Attachable):
#                 if self._parent is not None:
#                     try:
#                         self._parent._children.pop(self._parent._children.index(self._children))
#                     except Exception:
#                         pass
#                 if self in parent._children:
#                     return
#                 parent._children.append(self)
#                 parent._dirty = True
#                 self._parent = parent
#             else:
#                 raise TypeError('"parent" object can\'t receive attached objects.')
#         else:
#             raise AttributeError('"parent" object is None.')


# Path: e3d/sound_management/SoundClass.py
from hissing import Sound as HS
from ..Base3DObjectClass import Attachable




class Sound(HS, Attachable):
    def __init__(self, parent, manager, filePath, isStream, bufferSize, maxBufferNumber):
        """

        @type buffer: audio.SoundData
        """
        HS.__init__(self, manager, filePath, isStream, bufferSize, maxBufferNumber)

        Attachable.__init__(self, parent)