Changeset 4831:be687ef15976 in roaraudio


Ignore:
Timestamp:
04/03/11 10:50:30 (13 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

fixed a VIO ctl ID conflict

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/vio_ctl.h

    r4815 r4831  
    8383#define ROAR_VIO_CTL_GET_SOCKNAME        (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_GET|0x0188) /* getsockname() */ 
    8484#define ROAR_VIO_CTL_GET_PEERNAME        (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_GET|0x018C) /* getpeername() */ 
    85 #define ROAR_VIO_CTL_GET_SYSIO_SOCKOPT   (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_GET|0x0190) /* getsockopt() */ 
    86 #define ROAR_VIO_CTL_SET_SYSIO_SOCKOPT   (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_SET|0x0190) /* setsockopt() */ 
     85 
     86// NOTE: The following two blocks have some discontinuity in the used IDs: 
     87// 0x0190 was used by both ROAR_VIO_CTL_[GS]ET_SYSIO_SOCKOPT and ROAR_VIO_CTL_[GS]ET_MIMETYPE. 
     88// we fixed this by changeing IDs for both and add new consts for the conflicting IDs. 
     89// roar_vio_ctl() will print a warning if they are used. 
     90#define ROAR_VIO_CTL_CONFLICTING_ID_0    (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_GET|0x0190) 
     91#define ROAR_VIO_CTL_CONFLICTING_ID_1    (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_SET|0x0190) 
     92 
     93#define ROAR_VIO_CTL_GET_SYSIO_SOCKOPT   (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_GET|0x0198) /* getsockopt() */ 
     94#define ROAR_VIO_CTL_SET_SYSIO_SOCKOPT   (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_SET|0x0198) /* setsockopt() */ 
    8795 
    8896// more about network based protocols: 
    89 #define ROAR_VIO_CTL_GET_MIMETYPE        (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_GET|0x0190) 
    90 #define ROAR_VIO_CTL_SET_MIMETYPE        (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_SET|0x0190) 
     97#define ROAR_VIO_CTL_GET_MIMETYPE        (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_GET|0x019C) 
     98#define ROAR_VIO_CTL_SET_MIMETYPE        (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_SET|0x019C) 
    9199#define ROAR_VIO_CTL_GET_USERPASS        (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_SET|0x0194) 
    92100#define ROAR_VIO_CTL_SET_USERPASS        (ROAR_VIO_CTL_GENERIC|ROAR_VIO_CTL_SET|0x0194) 
     101// NOTE: continue with 0x01A0 from here. 
    93102 
    94103// get or set data format used for read and write calls, see below 
  • libroar/vio.c

    r4829 r4831  
    160160 ROAR_DBG("roar_vio_ctl(vio=%p, cmd=0x%.8x, data=%p): vio->ctl=%p", vio, cmd, data, vio->ctl); 
    161161 
     162 switch (cmd) { 
     163  case ROAR_VIO_CTL_CONFLICTING_ID_0: 
     164  case ROAR_VIO_CTL_CONFLICTING_ID_1: 
     165    ROAR_ERR("roar_vio_ctl(vio=%p, cmd=0x%.8x, data=%p): Your progam uses a VIO ctl call with a conflicting ID.", vio, cmd, data); 
     166    ROAR_ERR("roar_vio_ctl(vio=%p, cmd=0x%.8x, data=%p): Please recompile your program to fix this. (No additional steps are required beside that.)", vio, cmd, data); 
     167    ROAR_DBG("roar_vio_ctl(vio=%p, cmd=0x%.8x, data=%p) = -1", vio, cmd, data); 
     168    return -1; 
     169   break; 
     170 } 
     171 
    162172 if ( vio->ctl == NULL ) 
    163173  return -1; 
Note: See TracChangeset for help on using the changeset viewer.