integratie, integratie van de Dolby - API - en jam,,,,,,,,,,,, deel 1,,,,,,, het netwerk van delen van maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen, sponsoring, de inhoud, de. Na de start van onze lezers in verband met de functies van het product voor het doel van onderwijs en aan de richtsnoeren voor het opstellen en ons,,,,,,, je zorgt voor de ontwikkeling van,, als je een mobiele toepassingen, een Soort van audiovisuele produktie, is het een spel of een andere vorm van toepassing is, dan zou je willen dat je het geluid klinkt waarschijnlijk het beste in elk materieel verenigbaar is met de gemeenschappelijke markt. Sommige mobiele apparatuur, en Dolby digitale en steunen, met name de reikwijdte van deze brand ook meer en meer een androïde.Dolby digitale en door gebruik te maken van het filter kan aanzienlijk kunnen verbeteren, de verbetering van de produktie - deel je je aanvraag van de audiovisuele produktie, zoals muziek of geluid.Dat klinkt als de verwezenlijking van een ingewikkelde zaak, maar gelukkig is Dolby biedt een API, gebruik maken van de zeer eenvoudige.,, in deze handleiding zal je leren hoe een jam SDK, gebruik kunnen maken van het gebruik van Dolby digitale en Dolby audio - jam uitbreiding van de ontwikkeling van toepassingen.Als je in de integratie Dolby audio - van toepassing op je jam, alleen geïnteresseerd in het hoofd, en dan op de bodem van het artikel,, 1.Overzicht van toepassing zullen wij in deze handleiding zal worden voorzien van een eenvoudige gebruikersinterface bevat een bovenste rij knopen, kan beginnen met de verschillende audio, en op de bodem van een knop audio filters - toepassing moet .,, we creëren een nieuwe projecten en jam. De MAP en bron van documenten, om dit punt.,, dan zal ik uitleggen hoe de door de lading bevat die nodig zijn om de knop beeld op het scherm, in verschillende delen om de gebruikersinterface.Ik zal ook een beschrijving van het gebruik van jam op de gebruiker aan, zodra de gebruikersinterface te rennen, en ik zal je vertellen hoe de jam spelen twee verschillende types van audio - audio, zoals MP3 - bestanden, en de stem van de oorspronkelijke gegevens, tot slot, het monster . En ik zal voor de toepassing van het programma Dolby audio - en door gebruik te maken van de verschillende vormen van de audio filters.,, tijdens de les, en ik neem aan dat je de machine is de ontwikkeling van de ramen en er jam SDK en een versie van de visuele studio installatie.Jam kan ook worden gebruikt in de OS X aanvragen, je moet nog steeds gemakkelijk als je met Mac ontwikkeling van deze handleiding, stappen volgen. 2.Het project van een jam, stap 1: het creëren van een bron van documenten en dossiers, het creëren van een map, dolbytestapp, die het dossier.In deze folder, een map genaamd 'de bron'.Laten we ook het creëren van ons in ons project moet in het dossier.De bron in, vijf lege MAP, het creëren van een document dat de knop. CPP, druk op de knop. H, heer. CPP, CPP, geluid, geluid, en. H.,, stap 2: het creëren van een MKB - dossier, het creëren van een leeg dossier zegt dat dolbytestapp.mkb,, dolbytestapp, MAP en maak het open, in de code...Het dossier is samengesteld door MKB - jam - dossier.Het brengt je de bron van alle documenten en gegevens, en kan je ophouden als de aanvraag voor je geregeld in de verschillende platforms voor jam als icoon.De volgende documenten toe te voegen, dolbytestapp.mkb,.,, {[bron (bron) button.cpp knop. H main.cpp sound.cpp stem. H} - iwgx} {iwgeom,,, documenten, een deel van het dossier voor het MKB is een lijst van alle documenten van de bron, je project nodig heeft.Dat kun je ook een pakje, van deze documenten en documenten van de verschillende dossiers.Gebruik de haakjes omschreven groepen, dus de lijn van de bron, [], het creëren van een "bronnen".De groep stelt ons in staat om de organisatie van het dossier in de visuele studio oplossing, dan kunnen we naar de volgende stap.,, tussen haakjes, voor de aanwijzing van een map, jam moeten zoeken naar de bron.(oorsprong), instructies, jam, bron, ons belangrijkste project MAP mappen.Het project van de vijf documenten, na het in de handel brengen van deze lijn.,,, sub - project, stelt je verwijst naar een andere bron van module, je project nodig heeft.Dit project heeft, iwgeom,, iwgx standaard onderdelen, modules jam SDK.,, salaristrap 3: het creëren van een visuele studio project, en nu kan je MKB dossiers voor het creëren van een visuele studio oplossing kunnen worden gebruikt voor de bouw en het testen van de toepassing.Klik op de ramen... MKB - dossier, het gaat automatisch open voor visuele studio en .,, als je kijkt naar dolbytestapp, MAP, en je zal zien wat de nieuwe bestanden worden gecreëerd.Er is een map, build_dolbytestapp_vcxx,,,, XX, de naam van de map van een deel van het gebruik van de hangt af van uw versie van de studio.Deze map is met jam bevat alle documenten die nodig zijn voor de bouw van een deel van een proces, met inbegrip van de visuele studio oplossing van documenten, gegevens,.,, MAP worden gecreëerd, dit is moet je door de middelen die nodig zijn voor de toepassing van een, zoals de grafische en audio - bestand.De twee documenten ook automatisch worden gecreëerd in deze map:,,,, procedures. In een profiel, waardoor je de toepassing van de instellingen, zoals het geheugen van de toepassingen kunnen worden gebruikt, de toepassing van het maximale bedrag, de procedures voor de toewijzing van. En, gebruikt worden voor het gebruik van toepassingen van bepaalde parameters. Kan worden gebruikt, app.icf, documenten, deze les, je kan gerust negeren van deze documenten geen veranderingen zullen het nodig hebben.,,, 3.De gebruikersinterface, stap 1: de uitvoering van de programma 's die, laten we beginnen met de voorbereiding van de toepassing van de belangrijkste programma' s cyclus.In de studio van open source - MAP, de oplossing voor het beheer van de hulpbronnen, dubbele klik, main.cpp, documenten, en de toevoeging van de volgende codes, met inbegrip van "iwgx., #. H"met inbegrip van "S3E. H"met inbegrip van "knop. H"met inbegrip van 'de stem'. Initialise () {}. De beëindiging van () {} {} niet ongeldig. () () {} {in de Main () (); en (initialise!S3edevicecheckquitrequest () () () {update;);} beëindigen (); terugkeer 0;}, dit deel van de code begint met twee sinaasappelen hoofd stukken.En iwgx. H zei dat de structuur en de functies van het dossier, jam, iwgx, API, kunnen worden gebruikt voor doelen die apparatuur op twee en drie van de meest doeltreffende wijze van grafische.,,, S3E. H hoofd kan toegang krijgen tot alle documenten die rechtstreeks toegang hebben tot de lagere functies van het apparaat, zulke dingen aanraken inbreng van het scherm, stem steun, enzovoort.,,, de belangrijkste functie is vanzelfsprekend.Het begon door een beroep te doen op de , starten, zal de uitvoering van het programma moet door een beroep te doen op de toepassing van een van de instellingen wordt beëindigd, zou vrij door gebruik te maken van de toepassing van alle hulpbronnen, de belangrijkste circulerende noemen. En na de start, starten.De uitgang is maar een telefoon, s3edevicecheckquitrequest, is dit een jam, te controleren of de eisen om de toepassing van het programma heeft ontvangen, bijvoorbeeld wanneer de gebruiker heeft gesloten, toepassing of het systeem om het af te sluiten, omdat bepaalde redenen, de grote hoogte. Gewoon bellen, bijgewerkt en die functies blijven.Actualisering van de functie worden gebruikt, wat de inbreng van gebruikers die , opsporing, is verantwoordelijk voor de opstelling van de bu.,,,,,, -, de vernieuwing, de destructie en de beëindiging van de functie van,,, op dit moment zijn leeg, maar de toepassing kunnen worden vastgesteld en uitgevoerd.Als je wil dat het een poging van de simulator, jam, ramen, de oplossing van x86 - nee, opties, menu 's in de studio toolbar F7, voor de bouw van de toepassing en uitvoering van het, F5,.Je zou moeten zien, zoals de volgende foto.,,,,, stap 2: het beeld, waaruit blijkt dat de aanvraag nodig om de gebruikersinterface van foto 's, dus ik vertel het je nu te laden, Papoea - Nieuw - Guinea beeld van het geheugen, om het te veranderen in een staat, biedt het scherm, in de eerste plaats toe te voegen. De volgende documenten, een lijn die de volgende main.cpp, met inbegrip van de top, top, ciwtexture verklaring: * * * * * * * gptexture = nul;,,, ciwtexture, is gebruikt voor een bitmap beeld.In dit deel van de code in fragmenten, verklaar ik dat een van de variabelen, gptexture, die worden gebruikt voor de opslag van de aanwijzing van de voor de toepassing van de gebruikersinterface beeld. tekstbestand, we gebruiken de nomenclatuur, BU. Papoea - Nieuw - Guinea.,,,,, een beeld kan worden geladen en het gebruik van in voorbereiding door de toevoeging van de volgende code - functie - module iwgxinit.,, //////////////() jam; het creëren van een nieuwe ciwtexture en gebruikt om de belasting van het dossier gptexture = nieuwe ciwtexture; gptexture - > LoadFromFile ("de bu. Papoea - Nieuw - Guinea"); gptexture - > Upload (); de iwgxinit bellen,,,, de uitvoering van alle noodzakelijke maatregelen om de toepassing te starten moet worden gevestigd op het scherm, met inbegrip van de documenten kan het beeld.,,, gptexture, variabele wordt gebruikt voor de opslag vanEen voorbeeld van een nieuwe, ciwtexture, klasse.Een telefoon, de naam van de loadfromfile, beeld voor Papoea - Nieuw - Guinea in het geheugen laden en omzetten in een passend formaat opgesteld.Met betrekking tot de toepassing van het imago van de bestandsnaam, data, folders, dus je moet ervoor zorgen dat, ui.png, reproductie van documenten naar deze folder, telefoon, uploaden en uploaden van gegevens wordt omgezet in de video apparatuur de beelden op het scherm geheugen kan worden getrokken, is het ook belangrijk dat we na het opruimen, dus als de toepassing van de afsluiting van het programma kan het gebruik van alle middelen moeten worden vrijgemaakt.Beëindiging van de functie van het volgende toevoegen,.,, /vernietiging van voorbeelden van gptexture textuur te schrappen; ///////iwgxterminate (module); beëindiging van de jam, meer dan de eerste, vernietigen, ciwtexture, bijvoorbeeld, dat ui.png, beeld, en dat zal ook de vrijlating van een beeld van de toepassing van de hardware en geheugen.De iwgxterminate , telefoon, de vrijlating van alle middelen van de eerste toewijzing, telefoon, iwgxinit, , starten,.,, in stap 3: het creëren van een druk op de knop, en deze TOEPASSING BU moet op de knop, laten we het creëren van een nieuwe klasse van bekend als de knop, zal De uitvoering van het gedrag.Open de , druk op de knop. H het dossier en in de volgende code, button_h,# definitie button_hmet inbegrip van "iwgx. H" knop: openbare ciwtexture aptexture knop ({* * * * * * *, int32 ax, int32 is int32 breedte, lengte, int32, int32 au, int32 AV, auwidth int32, int32 avwidth booleaanse aenabled,); - knop () ():; ongeldig; particuliere ciwmaterial * * * * * * * mpmaterial; ciwsvec2 mtopleft; ciwsvec2 spelen -; ciwfvec2 muv; ciwfvec2 muvsize; Bull menabled;}, dat deed, dit soort #, de grootte en de locatie van de fabrikant voor de knopen op het scherm, toont ook aan dat de bron van de regio beeld op een knop.Dit blijkt ook uit de inbreng van gebruikers of de knop moet worden gebruikt voor de vrijlating van de verschrikkelijke.,, zal door de fabrikant, de methode voor de weergave van alle middelen, zoals verwacht, op het scherm knop.,, jam op de knop van de variabelen, de klasse, leden.Ciwmaterial, klasse, met jam is met beeld en andere van die informatie, zoals de kleur van gegevens, kan het nodig maken.De twee componenten, ciwsvec2, is de vector in elke vergadering is een 16 - bits die getallen.En ciwfvec2, zijn twee andere vector - en elk onderdeel vormen drijven,,,,, button.cpp, en de toevoeging van de volgende code voor de uitvoering van , druk op de knop.,,met inbegrip van "knop. H"met inbegrip van "S3E. H" knop: knop (ciwtexture * * * * * * * aptexture, int32 de bijl, int32 is int32 breedte en lengte, int32, int32 au, int32 AV, auwidth int32, int32 avheight booleaanse aenabled) {mpmaterial = nieuwe ciwmaterial (); mpmaterial - > SetTexture (aptexture); drijvende ltexturewidth = (variabele) aptexture - > getwidth (); de drijvende ltextureheight = (...) aptexture - > getheight (); mtopleft. X = ax; mtopleft. Y = - - = breedte; spelen. X - y = hoog; spelen. X = (mobiliteit; muv.T) AU /ltexturewidth; muv. Y = (variabele) AV /ltextureheight; muvsize. X = (variabele) auwidth /ltexturewidth; muvsize. Y = (variabele) avheight /ltextureheight; menabled = aenabled;}, van de fabrikant, te beginnen met de categorie, de knop, door het creëren van een nieuwe voorbeeld, ciwmaterial, die knop, die zal worden gebruikt voor het beeld.Elk heeft zijn eigen voorbeelden, ciwmaterial, voorbeelden, dat maakt het gemakkelijker om de knop van kleur .Een keer, ciwmaterial, voorbeelden worden gecreëerd, ciwtexture, voorbeelden van doorgegeven aan de constructeur beeld.,,, mtopleft, variabele wordt gebruikt voor de opslag van de leden, de linker knop op het scherm, en , spelen -, breedte en hoogte van de winkel.Deze waarden zijn aangegeven in de pixels.,,,,, muvsize muv, de variabele voor de opslag van het imago van de regio en de omvang van de linkse hoek van wordt gemaakt.Deze worden aangewezen als bron van de omvang van de praalwagen deel van het beeld, (0, 0), als de linker hoek van de foto, (1 1), als naar de hoek van de waarden aan de fabrikant wordt aangewezen als de geheime dienst op de textuur, dus je moet deze omschakeling numerieke gedeeld door de breedte van de samenstelling of de hoogte van de pixels de bron van het beeld.Door een beroep te doen op de getWidth en getHeight kan vinden, de omvang van het beeld,,, methoden, ciwtexture,.,, in het kader van een stukje code is klasse destructor.Zoals je kan zien, de doen is geschrapt, ciwmaterial, zaak is toegewezen aan de fabrikant.,, druk op de knop:: ~. () {} mpmaterial geschrapt;,,, die methode komt, druk op de knop, op het scherm.Het begon door de inspectie, menabled, variabelen en de kleur van de ciwmaterial,,,,, druk op de knop, die bij de opening van de helderheid, het is donker uit te schakelen. bellen, zeg iwgxsetmaterial, jam, ciwmaterial, voorbeelden van destructie en , iwgxdrawrectscreenspace, zal leiden tot een knop trekken.,, ongeldig: () {als (knopen.Menabled) mpmaterial - > setcolambient (96 96, 96255); andere mpmaterial - > setcolambient (255255255255); iwgxsetmaterial (mpmaterial); iwgxdrawrectscreenspace (& mtopleft & spelen -, & & muvsize muv);}, stap 4: de ontwikkeling van interfaces voor de gebruikers van de toepassing. De interface worden automatisch aangepast aan de werking van de apparatuur op het scherm, maar om de dingen een beetje simpel we alleen steun geven aan de horizontale.De eerste stap is in de app.icf door in de volgende documenten, de werking van het landschap,.,, [S3E] dispfixrot = landschap memsize0 = 12 = {besturingssysteem Windows} winwidth = 1280 = 800 winheight {}, in alle instellingen, app.icf, documenten met betrekking tot een groep.Tussen haakjes wordt gebruikt voor de aanduiding van een groep, dus in dit geval [S3E], die als volgt S3E,,, een deel van de groep, die door de betrokken instellingen een groep - jam.,,, dispfixrot, zal het scherm is altijd dwars.En memsize0, die worden toegevoegd aan de verhoging van het geheugen van toepassing kan worden gebruikt.Als je nog een goede ondersteuning van deze handleiding, extra nodig zal zijn de stem van de RAM opgeslagen gegevens, winheight winwidth.,,,,, voor de toepassing van die ramen in de simulator in de werking van de afmetingen.{OS = ramen}, om ervoor te zorgen dat deze instellingen in de simulator gebruik te maken van de ramen.{}, dus geen van de instellingen - deze beperking tot de vaststelling van een lijn die de volgende. En, je kan nu begonnen met de oprichting van een interface elementen.Open, main.cpp, begin van het dossier van de toevoeging van de volgende codes , gptexture, verklaring van de variabelen, de opsomming buttonids {button_audio_label.,, button_audio_off, button_audio_music, button_audio_sfx, button_audio_speech, button_filter_label, button_filter_off, button_filter_movie, button_filter_music, button_filter_game, button_filter_voice, button_count}; knop * * * * * * * gbutton [button_count]; Bull gdolbysupported;,,, buttonids opsomming dat is een handig die elke gebruiker interface elementen.En gbutton in herinnering -, zal elke aanwijzing, druk op de knop, in de gebruikersinterface en, gdolbysupported voorbeeld teken als doelstellingen voor de boer niet Dolby audio - apparatuur - deel uitschakelen. En, om de gewenste, druk op de knop van de volgende voorbeelden van de code, worden toegevoegd aan de voor de initialisatie, functie, aan het einde van,,. ///////- Dolby digitale plus steun gdolbysupported = vals; ///////- knop int32 creëren lsize = iwgxgetscreenwidth () /5; int32 lgap = ((variabele) lsize * * * * * * * 0.1F); lsize = ((variabele) lsize * * * * * * * 0.9f) lrowsize = 4; int32 iwgxgetscreenheight (); int32 ltoprowx = (iwgxgetscreenwidth () - (4 * lsize) - (3 * lgap)) /2; int32 ltoprowy = lrowsize - (lsVan /2); int32 lbottomrowx = (iwgxgetscreenwidth () - (5 * lsize) - (4 * lgap)) /2; int32 lbottomrowy = (3 * lrowsize) - (lsize /2); int32 llabelwidth = (240 × lsize) /160; int32 llabelheight = (42 * lsize int32) /160; llabelx = (iwgxgetscreenwidth () - llabelwidth) /2; gbutton [button_audio_label] = nieuwe knop (gptexture, llabelx, ltoprowy - llabelheight - 10, llabelwidth, llabelheight, 4408240, 42, valse); gbutton [button_audio_off] = nieuwe knop (gptexture, ltoprowx, ltoprowy, lsize lsize, 347, 3 160160, echt, gbutton); button_audio_music] = [(gptexture nieuwe knop, ltoprowx + (lsize + lgap), ltoprowy,Lsize, lsize, 175, 3160160, waar); gbutton [button_audio_sfx] = nieuwe knop (gptexture, ltoprowx + (2 * * * * * * * (lsize + lgap)), ltoprowy, lsize, lsize, 2173160160, waar); gbutton [button_audio_speech] = nieuwe knop (gptexture, ltoprowx + (3 * * * * * * * (lsize + lgap)), ltoprowy, lsize, lsize, 174173160160, waar); gbutton [button_filter_label] = nieuwe knop (gptexture, llabelx, lbottomrowy - llabelheight - 10, llabelwidth, llabelheight, 2353240, 42, valse); gbutton [button_filter_off] = nieuwe knop (gptexture, lbottomrowx, lbottomrowy, lsize, lsize, 347, 3160160, gbutton [gdolbysupported);Button_filter_movie] = nieuwe knop (gptexture, lbottomrowx + (lsize + lgap), lbottomrowy, lsize, lsize, 2, 3160160, gdolbysupported); gbutton [button_filter_music] = nieuwe knop (gptexture, lbottomrowx + (2 * * * * * * * (lsize + lgap)), lbottomrowy, lsize, lsize, 175, 3160160, gdolbysupported); gbutton [button_filter_game] = nieuwe knop (gptexture, lbottomrowx + (3 * * * * * * * (lsize + lgap)), lbottomrowy, lsize, lsize, 2173160160, gdolbysupported); gbutton [button_filter_voice] = nieuwe knop (gptexture, lbottomrowx + (4 * * * * * * * (lsize + lgap)), lbottomrowy, lsize, lsize 174173160,,160, gdolbysupported); in deze code, blokken, we gebaseerd op de veronderstelling dat de Dolby audio - apparatuur die niet ter ondersteuning van de gebruikers, gdolbysupported, vals.De volgende iwgxgetscreenheight iwgxgetscreenwidth,,,,, dat voor de gebruikers interface elementen van de functie van het scherm en de juiste afmetingen en de berekening van de omvang van de locatie.De laatste groep, druk op de knop, voorbeelden te creëren, waarin de gebruikersinterface.,, misschien is het je opgevallen , druk op de knop, voor de controle van de huidige vormen van gebruik van filters, gdolbysupported voorbeelden te geven of om de variabelen of niet.Ik loog over één punt met twee voorbeelden van een etiket dat het op de knop,.,, je bent nu gebruikers interface, maar je moet zorgen dat je je netjes.Toevoeging van de volgende code blok in de start, te beëindigen, de functie om de knop, de aanleg, de toepassing zal sluiten.,, /vernietiging voorbeelden (uint32 i = 0; ik < button_count; I + +) (geschrapt gbutton [I];}, als je wil op dit punt de procedures die worden gebruikt, de gebruikersinterface zal worden gecreëerd en de vernietiging van, maar het is nog steeds niet maken.Je moet de toevoeging van het volgende fragment maken, zal de beelden op het scherm.,, ///////om het scherm van de blauwe iwgxsetcolclear (128224255 iwgxclear (, 0); iw_gx_colour_buffer_f