CS作业代写 CSC 388/588 (Type in fields) 5 – ASync Load

Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report CSC 388/588 (Type in fields) 5 – ASync Load
Student Information
Integrity Policy: All university integrity and class syllabus policies have been followed. I have neither given, nor received, nor have I tolerated others’ use of unauthorized aid.
I understand and followed these policies:

Copyright By PowCoder代写 加微信 powcoder

Name: Date:
Submission Details
Final Changelist number:
Verified build: Yes No
Required Configurations: YouTubeLink:
Discussion (What did you learn):
Real-time Multithreaded Architecture Sprint Assignment

Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report
CSC 388/588 (Type in fields) YouTube Process
• Record the YouTube demo
o Youneedtorecordinstereowithcommentary
 2 channel with both computer (desktop) and microphone recording o Suggestion:OBSscreencapture
• Record the desktop (enough to show your directory and the visual studio and output) o Showyourdirectoryinrecording
 Launch the visual studio (double click solution) o Showoffrelevantpartsofthecodewithcommentary o LaunchanddemotheSprint
 Play the demo and add your commentary in real-time o Watchyourvideo
 Verify that video clear and can you hear the commentary with audio in stereo?
• Note: Weekly Sprints cannot be longer that 2:00 mins o Ifyougoover…doitagain
• Publish your YouTube recording
o Makesureitisaccessiblewithoutanyloginorpermissiontoplay o Itcanbeprivatebutnotrestrictivetoplaybyanyonewiththelink
 If unplayable as-is… Grade 0
• Submit your code to perforce to the appropriate Sprint directory
o form (this document)
• Submit this PDF to perforce o Fillinform
 Name, changlelist, etc… o Submitbacktoperforce
 Check it out
 Submit it back to perforce to the same location
Real-time Multithreaded Architecture Sprint Assignment

Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report
CSC 388/588 (Type in fields) Verify Builds
• Follow the Piazza procedure on submission
o Verifyyoursubmissioncompilesandworksatthechangelistnumber.
• Verify that only MINIMUM files are submitted o No–Generatedfiles
 *.pdb, *.suo, *.sdf, *.user, *.obj, *.exe, *.log, *.pdb, *.db, *.user
 Anything that is generated by the compiler should not be included o No–Generateddirectories
 /Debug, /Release, /Log, /ipch, /.vs
• Typical files project files that are required
o *.sln,*.cpp,*.h
o *.vcxproj,*.vcxproj.filters,CleanMe.bat
Standard Rules
Submit multiple times to Perforce
• Submit your work as you go to perforce several times (at least 5) o Assoonasyougetsomethingworking,submittoperforce o Havereasonablecheck-incomments
 Points will be deducted if minimum is not reached
Write all programs in cross-platform C++
• Optimize for execution speed and robustness
• Working code doesn’t mean full credit
Submission Report
• Fill out the submission Report o Noreport,nograde
Code and project needs to compile and run
• Make sure that your program compiles and runs o WarninglevelALL…
o NOWarningsorERRORS
 Your code should be squeaky clean. o Codeneedstowork“as-is”.
 No modifications to files or deleting files necessary to compile or run. o Allyourcodemustcompilefromperforcewithnomodifications.
 Otherwise it’s a 0, no exceptions
Real-time Multithreaded Architecture Sprint Assignment

Real-time Multithreaded Architecture use Adobe Reader to complete CSC 388/588 (Type in fields)
Project needs to run to completion
• If it crashes for any reason…
o Itwillnotbegradedandyougeta0
No Containers
• NO STL allowed {Vector, Lists, Sets, etc…}
o Noautomaticcontainersorarrays
o Youneedtodothistheoldfashionway-YOUEARNEDIT
Leave Project Settings
Submission Report Keenan
• Do NOT change the project or warning level
o Anychangingoflevelorsuppressionofwarningsisanintegrityissue
Simple C++
• No modern C++
o NoLambdas,Autos,templates,etc… o NoBoost
• NO Streams
o Usedfopen,fread,fwrite…
• No code in MACROS
o Codeneedstobeincppfilestoseeanddebugiteasy
• Exception:
o implicit problem needs templates
Leaking Memory
• If the program leaks memory
o Thereisadeductionof20%ofgrade
• If a class creates an object using new/malloc o Itisresponsibleforitsdeletion
• Any MEMORY dynamically allocated that isn’t freed up is LEAKING o LeakingisHORRIBLE,soyoulosepoints
No Debug code or files disabled
• Make sure the program is returned to the original state
o Ifyouaddeddebugcode,pleasereturntooriginalstate
• If you disabled file, you need to re-enable the files
o Allfilesmustbeactivetogetcredit.
o Bettertolosepointsforunitteststhantodisableandloseallpoints
No Adding files to this project
• This project will work “as-is” do not add files…
• Grading system will overwrite project settings and will ignore any student’s added files and
will returned program to the original state
Real-time Multithreaded Architecture Sprint Assignment

Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report CSC 388/588 (Type in fields) TestConfiguration file (if provided) needs to be set by user
• Grading will be on the UnitTestConfiguration settings
o Pleaseexplicitlysetwhichtestsyouwantgraded…noregradingifsetincorrectly
• See Piazza for due date and time
• Submit program perforce in your student directory assignment supplied.
• Fill out your this Submission Report and Sprint to perforce
o ONLYuseAdobeReadertofilloutform,allotherswillberejected. o Fillouttheformanddiscussionforfullcredit.
o Asyncloading
 You need to use FileSlow library o Creatingafilethreadwithaqueue
o Callbackattachedtotheasyncloading
 Signaling the game thread when done loading
Assignments
0. Create a directory Sprint5
a. Do all your development in Sprint5 directory
b. You need to use FileSlow methods for Sprint 5, 6 and milestone2
c. Make sure you submit this project many times to perforce as you develop
i. You need to submit the project and the video for this Sprint
• 3 samples
o Given2simplemonowavesamples
 Sampled at 48Khz, 32-bit o Given1stereowavesample
 Sampled at 48Khz, 32-bit
• Create 3 separate simple playlists (scripts) – 1 sound wave, one sound ID
o 501–Electro
o 502–Alert
o 503–Beethoven
Real-time Multithreaded Architecture Sprint Assignment

Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report
CSC 388/588 (Type in fields)
• We are demoing Asynchronous loading and game user file load callback o Create1uniquegameuserfileloadcallback
 Using Debug::out() to the output window wave file name loaded  Example:
• Beethoven.wav  Loaded
 Callback is triggered when the file load is finished
o Goalofthisdemo
 Load 2 sound waves 501, 502 initiated on the game thread  Start playing sounds 501 and 502
 After starting 501
• Load 1 sound wave asynchronously
• Once loaded – a callback will be triggered (communicating its
• Call the SPECIAL loading file loading functions
o SincemanyhaveSolidStateDrive…weneedtosimulate  Delay and latency of network or slow hard drive
o UsetheFileSlowclasstosimulatelatency  FileSlow::Open()
 FileSlow::Read()
 FileSlow::Seek()
 FileSlow::Tell()
 FileSlow::Close()
Start Demo – hit the key to trigger it
• This is triggered in the update() method of the game o Readthekeyboardinput
o ThenloadandgowithyourDemo
• The demo should play from there.
o Nouserinterventionneeded–justneedthetimertriggersworking.
• Setup your playlists
o Loadthemonowavedataneededfor501and502initiateonthegameside o DONOTLOAD503-Beethoven
 It’s OK to have the playlists table on the Audio Thread side
o Audiosidecannotloadthewavedata,thathastobeinitiatedonthegameside
• Create game user file loading callback something like GameLoadingCallback() o Thiswillbeusedontheloadcallinthedemo
 Printing to the output window wave file name loaded when file is finished loaded
• Load all the timer events for this demo at once – let the timer do the work
Real-time Multithreaded Architecture Sprint Assignment

Real-time Multithreaded Architecture CSC 388/588
use Adobe Reader to complete
Submission Report Keenan
30 35 40 45 60
File Async Callback Ends Trigger
on Game Thread Play
503 Pan: center Vol 50%
Start the demo
100% Right 30% Vol
Initiated on
Blocking Blocking Load Load 501 502
Initiated Initiated On On Game Game thread thread
(Type in fields)
Time (seconds)
Async Load
User File Callback
Initiated On Game thread
• In Demo (Start with a key press) o BlockingLoadingSnd501
100% Left 100% Left 100% Left 100% Left 100% Left 100% Left
Initiated on Game thread
Initiated on Game thread
Initiated on Game thread
Initiated on Game thread
Initiated on Game thread
Initiated on Game thread
 Initiate on Game Thread
Async Loading Beethoven –
Electro … naturally ends
User File Callback
 Add Debug::out() to show the call on the correct thread o BlockingLoadingSnd502
 Initiate on Game Thread
 Add Debug::out() to show the call on the correct thread o Printthewavetable
 Use Debug::out() in the wave table printing; o Whenloadedstarttimedemo
• Timer: 0 seconds
o SndA=Play501,vol:30%,pan:100%Right,Prioritydefault(optional)
 Add Debug::out() to show the call on the correct thread o StartwaveloadingasyncdatawithGameLoadingCallback()
 Game thread initiates the Beethoven wave data load
• The callback is created on game side
• Will be triggered when that wave data (Beethoven is loaded)
 Add Debug::out() to show the call on the correct thread
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
 Add Debug::out() to show the call on the correct thread
Play Beethoven
Print wave table using Debug:out()
Unload wave 503 Initiated on Game thread Unload wave 502 Initiated on Game thread Unload wave 501 Initiated on Game thread
Stop 503 Initiated on Game Thread
Print wave table using Debug:out()
Print wave table using Debug:out()
Real-time Multithreaded Architecture Sprint Assignment

Real-time Multithreaded Architecture use Adobe Reader to complete Submission Report
CSC 388/588 (Type in fields)
• Timer: 5 seconds
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
 Add Debug::out() to show the call on the correct thread
• Timer: 10 seconds
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
 Add Debug::out() to show the call on the correct thread
• Timer: 15 seconds
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
 Add Debug::out() to show the call on the correct thread
• Timer: 20 seconds
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
 Add Debug::out() to show the call on the correct thread
• Timer: 25 seconds
o SndB=Play502,vol:30%,pan:100%left,Prioritydefault(optional)
 Add Debug::out() to show the call on the correct thread
• As soon as the Beethoven is loaded… from the callback o StarttheBeethovensound
o SndC=Play503,vol:50%,pan:center,stereo,Prioritydefault(optional)  Beethoven should start
 Debug::out() in the callback o Printthewavetable
• Timer: 60 seconds o StopSndC
o InitiatedfromGameside
 Unload( 501 wave);  Unload( 502 wave);  Unload( 503 wave);
o Printthewavetable
Nothing else – the callbacks to the work
Questions:
Place in a separate PDF call Sprint5_Questions, in the same directory as the Sprint5 PDF
1) Please explain and diagram the way you did Async user File Callback?
a. Talk about the commands, threads and how the wave table is protected
2) How does a wave table entry gets delete/removed?
Real-time Multithreaded Architecture Sprint Assignment

Real-time Multithreaded Architecture use Adobe Reader to complete CSC 388/588 (Type in fields)
a. Talk about each scenario. (unload command)
Deliverables
Submission Report Keenan
• Stand-alone C++ demo
o CreateademotoshowofftheALLoftheabovefeatures
o Useaudiosamplesthatallowyoutodemonstratetheabovefeatureseasily
• Visual Studio 2019 Enterprise Edition
o C++warninglevelall
o Minimumcode,notemporariesorgenerateditems
o Needstobeabletocompileandrun“as-is”withoutcheckingoutfromperforceor
changing the attributes of the files
• For some people – the demo is hardest part of this exercise
Validation
Simple checklist to make sure that everything is submitted correctly
• Submitted project to perforce correctly
o Istheprojectcompilingandrunningwithoutanyerrorsorwarnings? o Isthesubmissionreportfilledinandsubmittedtoperforce?
o Followtheverificationprocessforperforce
 Is all the code there and compiles “as-is”?
 No extra files
o Istheprojectleakingmemory?
• Submitted the YouTube link to perforce? Hints
Most assignments will have hints in a section like this.
• Dig into the material read the online blogs… o Lotsandlotsofinformation
• You can discuss the tools and drivers on Piazza o Share
• Use the ORUMs
o Read,explore,askquestions
Real-time Multithreaded Architecture Sprint Assignment

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com