Changeset 4298:f36b7f925311 in roaraudio


Ignore:
Timestamp:
09/03/10 17:38:05 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support for large number of streams in LTM

Location:
roard
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • roard/clients.c

    r4297 r4298  
    475475    } 
    476476 
     477    ROAR_DBG("clients_check(*): data=%p", data); 
     478 
    477479    roar_send_message(&con, &m, flags[1] & COMMAND_FLAG_OUT_LONGDATA ? data : NULL); 
    478480 
  • roard/commands.c

    r4279 r4298  
    9494 int cmd = command_get_id_by_cmd(mes->cmd); 
    9595 int (*func)(int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 
     96#ifdef DEBUG 
     97 int ret; 
     98#endif 
    9699 
    97100 if ( cmd == -1 ) 
     
    105108 ROAR_DBG("command_exec(*): Execing command %i(%s) via %p", cmd, g_commands[cmd].name, func); 
    106109 
     110#ifdef DEBUG 
     111 ROAR_DBG("command_exec(client=%i, mes=%p{.cmd=%i,...}, data=%p{%p}, flags=%p): func=%p", client, mes, (int)mes->cmd, data, *data, flags, func); 
     112 ret = func(client, mes, data, flags); 
     113 ROAR_DBG("command_exec(client=%i, mes=%p{.cmd=%i,...}, data=%p{%p}, flags=%p) = %i", client, mes, (int)mes->cmd, data, *data, flags, ret); 
     114 return ret; 
     115#else 
    107116 return func(client, mes, data, flags); 
     117#endif 
    108118} 
    109119 
  • roard/req.c

    r4291 r4298  
    2626#include "roard.h" 
    2727 
     28static void * _dataspace(struct roar_message * mes, char ** data, uint32_t flags[2], size_t len) { 
     29 if ( len <= LIBROAR_BUFFER_MSGDATA ) 
     30  return mes->data; 
     31 
     32 if ( *data != NULL ) 
     33  free(*data); 
     34 
     35 *data = malloc(len); 
     36 
     37 ROAR_DBG("_dataspace(mes=%p, data=%p, flags=%p, len=%llu): *data=%p", mes, data, flags, (long long unsigned int)len, *data); 
     38 
     39 if ( *data == NULL ) 
     40  return NULL; 
     41 
     42 flags[1] |= COMMAND_FLAG_OUT_LONGDATA; 
     43 
     44 return *data; 
     45} 
     46 
    2847int req_on_noop        (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 
    2948 mes->cmd     = ROAR_CMD_OK; 
     
    815834    ROAR_DBG("req_on_get_stream_para(client=%i, ...): data size for answer is %i 64 bit sub-packets", client, (int)needed); 
    816835 
    817     if ( (needed*8) > LIBROAR_BUFFER_MSGDATA ) { 
    818      return -1; 
    819      if ( (d64 = malloc(needed*8)) == NULL ) 
    820       return -1; 
    821  
    822      *data = (char*)d64; 
    823     } 
    824  
    825     d64 = (int64_t*)mes->data; 
     836    ROAR_DBG("req_on_get_stream_para(client=%i, ...): mes->datalen=%i, data=%p{%p}", client, (int)mes->datalen, data, *data); 
     837    d64 = _dataspace(mes, data, flags, needed * 8); 
     838    ROAR_DBG("req_on_get_stream_para(client=%i, ...): d64=%p, data=%p{%p}", client, d64, data, *data); 
    826839 
    827840    if ( (d = roar_mm_malloc(mes->datalen)) == NULL ) 
    828841     return -1; 
    829842 
     843    ROAR_DBG("req_on_get_stream_para(client=%i, ...): d=%p, data=%p{%p}", client, d, data, *data); 
     844 
     845 
     846    ROAR_DBG("req_on_get_stream_para(client=%i, ...): mes->datalen=%i, data=%p{%p}", client, (int)mes->datalen, data, *data); 
     847    ROAR_DBG("req_on_get_stream_para(client=%i, ...): d64=%p, data=%p{%p}", client, d64, data, *data); 
    830848    memcpy(d, mes->data, mes->datalen); 
     849    ROAR_DBG("req_on_get_stream_para(client=%i, ...): d64=%p, data=%p{%p}", client, d64, data, *data); 
    831850 
    832851    d64ptr = d64; 
     852 
     853    ROAR_DBG("req_on_get_stream_para(client=%i, ...): mes->datalen=%i, data=%p{%p}", client, (int)mes->datalen, data, *data); 
     854    ROAR_DBG("req_on_get_stream_para(client=%i, ...): d64=%p, data=%p{%p}", client, d64, data, *data); 
    833855 
    834856    if ( mes->stream == -1 ) { 
    835857     for (i = 6; i < mes->datalen/2; i++) { 
     858      ROAR_DBG("req_on_get_stream_para(client=%i, ...): d64=%p, data=%p{%p}", client, d64, data, *data); 
     859 
    836860      if ( (ltm = streams_ltm_get(d[i], d[5], d[3])) == NULL ) 
    837861       return -1; 
     
    879903    } 
    880904 
     905    ROAR_DBG("req_on_get_stream_para(client=%i, ...): d64=%p, data=%p{%p}", client, d64, data, *data); 
     906 
    881907    roar_mm_free(d); 
    882908 
     
    888914    ROAR_DBG("req_on_get_stream_para(client=%i, ...): LTM d64=%p, d64ptr=%p", client, d64, d64ptr); 
    889915    ROAR_DBG("req_on_get_stream_para(client=%i, ...): LTM final message has %i byte of data", client, (int)mes->datalen); 
     916    ROAR_DBG("req_on_get_stream_para(client=%i, ...): d64=%p, data=%p{%p}", client, d64, data, *data); 
    890917    ROAR_DBG("req_on_get_stream_para(client=%i, ...): LTM GET_RAW request: OK. returning...", client); 
    891918   break; 
Note: See TracChangeset for help on using the changeset viewer.