• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: AudioHardwarePlugIn and kAudioDevicePropertyDataSourceNameForID
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AudioHardwarePlugIn and kAudioDevicePropertyDataSourceNameForID


  • Subject: Re: AudioHardwarePlugIn and kAudioDevicePropertyDataSourceNameForID
  • From: Dirk Musfeldt <email@hidden>
  • Date: Fri, 05 Nov 2004 14:36:19 +0100

Maybe the other devices are answering the private request for property
'scnr' or 'namr' and mine is not? And thus the code executed is different
for my plug-in than for the other inputs?



> Yes, it works for other inputs. But I can't see my error:
>
> OSStatus    MyDeviceGetProperty(AudioHardwarePlugInRef inSelf,
>                                AudioDeviceID inDevice,
>                               UInt32 inChannel,
>                               Boolean isInput,
>                               AudioDevicePropertyID inPropertyID,
>                               UInt32* ioPropertyDataSize,
>                               void* outPropertyData)
> {
>   OSStatus err = kAudioHardwareNoError;
>
>   switch (inPropertyID) {
>       case kAudioDevicePropertyDataSourceNameForID:
>       {
>           if (*ioPropertyDataSize < sizeof (AudioValueTranslation)){
>               err = kAudioHardwareBadPropertySizeError;
>           }else{
>               AudioValueTranslation* trl =
>                           (AudioValueTranslation*)outPropertyData;
>               printf("DeviceGetProperty:
> kAudioDevicePropertyDataSourceNameForID: \n ioPropertyDataSize %ld \n
> mInputData %p \n mInputDataSize %ld \n mOutputData %p \n mOutputDataSize
> %ld\n",
>                      *ioPropertyDataSize,
>                      trl->mInputData,
>                      trl->mInputDataSize,
>                      trl->mOutputData,
>                      trl->mOutputDataSize);
>
>               if (trl->mInputData
>                           && *(UInt32*)trl->mInputData == kMyInputID) {
>                   char* data = (char*) trl->mOutputData;
>                   if (data) {
>                       strlcpy(data,m_nameString,trl->mOutputDataSize);
>
>                   } else {
>                       printf("DeviceGetProperty : no buffer %p\n",data);
>                       err = kAudioHardwareIllegalOperationError;
>                   }
>                   trl->mOutputDataSize =
>                       min(strlen(m_nameString )+1,trl->mOutputDataSize);
>
>               } else if (NULL == trl->mInputData ) {
>                   printf("DeviceGetProperty : no input %p\n",
>                          trl->mInputData);
>                   err = kAudioHardwareIllegalOperationError;
>
>               } else {
>                   printf("DeviceGetProperty : wrong input %ld\n",
>                          *(UInt32*)trl->mInputData);
>                   err = kAudioHardwareUnspecifiedError;
>               }
>               *ioPropertyDataSize = sizeof(AudioValueTranslation);
>           }
>           break;
>       }
>   }
>
>   return err;
> }
>
>
> The fun thing is that quite similar code for
> kAudioDevicePropertyDataSourceNameForIDCFString works fine when triggered in
> HALLab.
>
>
>
>
>> That certainly doesn't look right. There isn't any translation data.
>>
>> Does it work correctly for the built-in hardware? If it does, it most
>> likely means you are accidently munging the translation data somewhere
>> in the
>> dispatching code.
>>
>> If it doesn't, it likely means the bug is on the QuickTime/SoundManager
>> side.
>>
>> On Nov 4, 2004, at 2:39 AM, Dirk Musfeldt wrote:
>>
>>
>>> Is it possible that QuickTime or the SoundManager layer is doing this
>>> wrong?
>>>
>>> If I use HackTV with my plug-in and open the Sounbd settings I get
>>> this:
>>>
>>> DeviceGetProperty: kAudioDevicePropertyDataSourceNameForID:
>>>  ioPropertyDataSize 16
>>>  mInputData 0x0
>>>  mInputDataSize 0
>>>  mOutputData 0x0
>>>  mOutputDataSize 0
>>>
>>> But I could see other input names so there must be a way to signal
>>> this.
>>> What am I doing wrong?
>>>
>>>
>>>
>>>
>>>> If the mOutputData field is NULL or the mOutputDataSize field is 0, it
>>>> is an error by the caller of AudioDeviceGetProperty() and you should
>>>> return kAudioHardwareIllegalOperationError.
>>>>
>>>> If mOutputData is not NULL but mOutputDataSize is smaller than the
>>>> string you want to return, you should truncate the string to fit in
>>>> the
>>>> provided buffer.
>>>>
>>>> On Nov 3, 2004, at 5:18 AM, Dirk Musfeldt wrote:
>>>>
>>>>
>>>>
>>>>
>>>>> Hi all,
>>>>>
>>>>> I'm doing an AudioHardwarePlugIn and have troubles to get my reaction
>>>>> on
>>>>> kAudioDevicePropertyDataSourceNameForID right.
>>>>>
>>>>> I get an AudioValueTranslation record and want to copy my C string
>>>>> into the
>>>>> buffer provided with the mOutputData field.
>>>>>
>>>>> strcpy((char*)translation->mOutputData,nameString);
>>>>>
>>>>> But what if mOutputData and mOutputData Size are null? Do I have to
>>>>> malloc a
>>>>> buffer myself?
>>>>>
>>>>>
>>>>>
>>>>> Regards
>>>>>
>>>>> Dirk
>>>>>
>>>>>
>>>>>  _______________________________________________
>>>>> Do not post admin requests to the list. They will be ignored.
>>>>> Coreaudio-api mailing list      (email@hidden)
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> 40apple.com
>>>>>
>>>>> This email sent to email@hidden
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> Regards
>>>
>>> Dirk
>>>
>>>
>>>  _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Coreaudio-api mailing list      (email@hidden)
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>>
>>
>>
>>
>
>
> Mit freundlichen Grüßen
>
> Dirk Musfeldt
> Meilenstein Mac OS Software
>
> Neue Strasse 5
> D-31582 Nienburg
> Tel: +49 (0) 5021 91 24 44
> Fax: +49 (0) 5021 91 24 45
> <http://www.meilenstein.de/>
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Coreaudio-api mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
> de
>
> This email sent to email@hidden
>


Mit freundlichen Grüßen

Dirk Musfeldt
Meilenstein Mac OS Software

Neue Strasse 5
D-31582 Nienburg
Tel: +49 (0) 5021 91 24 44
Fax: +49 (0) 5021 91 24 45
<http://www.meilenstein.de/>


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: AudioHardwarePlugIn and kAudioDevicePropertyDataSourceNameForID
      • From: Jeff Moore <email@hidden>
References: 
 >Re: AudioHardwarePlugIn and kAudioDevicePropertyDataSourceNameForID (From: Dirk Musfeldt <email@hidden>)

  • Prev by Date: Re: AudioHardwarePlugIn and kAudioDevicePropertyDataSourceNameForID
  • Next by Date: Multichannel configs etc.
  • Previous by thread: Re: AudioHardwarePlugIn and kAudioDevicePropertyDataSourceNameForID
  • Next by thread: Re: AudioHardwarePlugIn and kAudioDevicePropertyDataSourceNameForID
  • Index(es):
    • Date
    • Thread