[BACK]Return to midi.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / sndiod

Diff for /src/usr.bin/sndiod/midi.c between version 1.4 and 1.5

version 1.4, 2012/11/30 21:04:35 version 1.5, 2012/11/30 22:26:34
Line 518 
Line 518 
         for (rxmask = 0, i = 0; i < MIDI_NEP; i++)          for (rxmask = 0, i = 0; i < MIDI_NEP; i++)
                 rxmask |= midi_ep[i].txmask;                  rxmask |= midi_ep[i].txmask;
         if ((rxmask & c->midi->self) == 0 && c->state == PORT_INIT && !c->hold)          if ((rxmask & c->midi->self) == 0 && c->state == PORT_INIT && !c->hold)
                 port_close(c);                  port_drain(c);
 }  }
   
 struct port *  struct port *
Line 571 
Line 571 
         return 1;          return 1;
 }  }
   
   void
   port_drain(struct port *c)
   {
           struct midi *ep = c->midi;
   
           if (!(ep->mode & MODE_MIDIOUT) || ep->obuf.used == 0)
                   port_close(c);
           else {
                   c->state = PORT_DRAIN;
   #ifdef DEBUG
                   if (log_level >= 3) {
                           port_log(c);
                           log_puts(": draining\n");
                   }
   #endif
           }
   }
   
 int  int
 port_init(struct port *c)  port_init(struct port *c)
 {  {
Line 582 
Line 600 
 void  void
 port_done(struct port *c)  port_done(struct port *c)
 {  {
         /* XXX: drain? */          if (c->state == PORT_INIT)
         if (c->state != PORT_CFG)                  port_drain(c);
                 port_close(c);  
 }  }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5