Changeset 82


Ignore:
Timestamp:
Sep 13, 2006, 10:19:27 PM (19 years ago)
Author:
vladest
Message:

Stream reusing fix

Location:
GPL/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk/include/version.mak

    r80 r82  
    1111BLDLVL_REVISION = 1.1
    1212BLDLVL_FILEVER = 4
    13 BLDLVL_DATETIME = 29.08.2006 22:06:32
     13BLDLVL_DATETIME = 10.09.2006 17:47:50
    1414BLDLVL_MACHINE = VLAD
  • GPL/trunk/lib32/sound.c

    r77 r82  
    534534    printk("OSS32_WaveOpen: cp1\n");
    535535    ret = alsa_fops->open(&pHandle->inode, &pHandle->file);
    536     printk("OSS32_WaveOpen: cp2\n");
     536    printk("OSS32_WaveOpen. ret: %i\n", ret);
    537537    /* check if PCM already opened (stupid uniaud16.sys doesnt closes it) */
    538538    if (ret == -16)
    539539    {
    540         kfree(pHandle);
    541540        for (i=0; i < 8*256; i++)
    542541        {
     
    545544                if (pStreamId)
    546545                    *pStreamId = (ULONG)opened_handles[i].handle;
    547                 opened_handles[i].reuse = 1;
    548                 printk("OSS32_WaveOpen. Reuse streamid %X\n",(ULONG)opened_handles[i].handle);
    549                 return OSSERR_SUCCESS;
     546                opened_handles[i].reuse = 0; /* prevent from reusing */
     547                if (OSS32_WaveClose((OSSSTREAMID)opened_handles[i].handle) == 0)
     548                {
     549                    OSS32_CloseUNI16(); /* say to UNIAUD16 that we closing now */
     550                    opened_handles[i].handle = 0;
     551                    ret = alsa_fops->open(&pHandle->inode, &pHandle->file);
     552                    printk("OSS32_WaveOpen. Reopen ret: %i\n", ret);
     553                    break;
     554                }
    550555            }
    551556        }
Note: See TracChangeset for help on using the changeset viewer.