Show
Ignore:
Timestamp:
12/02/07 14:52:52 (14 years ago)
Author:
ppalmers
Message:

have separate threads for every handler

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/src/libieee1394/IsoHandler.h

    r750 r753  
    2828#include "IsoHandlerManager.h" 
    2929 
    30 enum raw1394_iso_disposition ; 
     30#include "libutil/Thread.h" 
     31 
     32enum raw1394_iso_disposition; 
    3133 
    3234namespace Streaming { 
     
    4345*/ 
    4446 
    45 class IsoHandler 
     47class IsoHandler : public Util::RunnableInterface 
    4648{ 
    4749public: 
     
    5254    IsoHandler(IsoHandlerManager& manager); 
    5355    IsoHandler(IsoHandlerManager& manager, unsigned int buf_packets, unsigned int max_packet_size, int irq); 
    54  
    5556    virtual ~IsoHandler(); 
     57 
     58    // runnable interface 
     59    virtual bool Init(); 
     60    virtual bool Execute(); 
     61    int getFileDescriptor() { return raw1394_get_fd(m_handle);}; 
     62    bool setThreadParameters(bool rt, int priority); 
    5663 
    5764    virtual bool init(); 
     
    8289 
    8390    virtual enum EHandlerType getType() = 0; 
    84  
    85     int getFileDescriptor() { return raw1394_get_fd(m_handle);}; 
    8691 
    8792    virtual void dumpInfo(); 
     
    108113    private: 
    109114        static int busreset_handler(raw1394handle_t handle, unsigned int generation); 
     115 
     116        struct pollfd   m_poll_fd; 
     117        int             m_poll_timeout; 
     118        // threading 
     119        bool            m_realtime; 
     120        int             m_priority; 
     121        Util::Thread *  m_Thread; 
    110122 
    111123    // the state machine