def OnFrame(self, sender, frameData, **kwargs):
        self.buffer.append(
            frameData.reshape(1, frameData.shape[0],
                              frameData.shape[1]).copy())

        if self.imNum == 0:  #first frame
            self.md.setEntry('imageID',
                             fileID.genFrameID(self.buffer[-1].squeeze()))
            #pass

        if len(self.buffer) >= self.buflen:
            self.FlushBuffer()

        sp.Spooler.OnFrame(self)
    def OnFrame(self, sender, frameData, **kwargs):
        """Called on each frame"""

        if not self.watchingFrames:
            # drop frames if we've already stopped spooling. TODO - do we also need to check if disconnect works?
            return

        #print 'f'
        if frameData.shape[0] == 1:
            self.imageData.append(frameData)
        else:
            self.imageData.append(
                frameData.reshape(1, frameData.shape[0], frameData.shape[1]))
        self.h5File.flush()
        if self.imNum == 0:  #first frame
            self.md.setEntry('imageID',
                             fileID.genFrameID(self.imageData[0, :, :]))

        sp.Spooler.OnFrame(self)
    def OnFrame(self, sender, frameData, **kwargs):
        if not self.watchingFrames:
            #we have already disconnected
            return
          
        #self.tq.postTask(cSMI.CDataStack_AsArray(caller.ds, 0).reshape(1,self.scope.cam.GetPicWidth(),self.scope.cam.GetPicHeight()), self.seriesName)

        # NOTE: copy is now performed in frameWrangler, so we don't need to worry about it here
        if frameData.shape[0] == 1:
            self.buffer.append(frameData)
        else:
            self.buffer.append(frameData.reshape(1,frameData.shape[0],frameData.shape[1]))

        if self.imNum == 0: #first frame
            self.md.setEntry('imageID', fileID.genFrameID(self.buffer[-1].squeeze()))

        if (len(self.buffer) >= self.buflen):
            self.FlushBuffer()

        sp.Spooler.OnFrame(self)