C ++ рдореЗрдВ ASIO рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдпрд╛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕реБрдЦрдж


рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдЧрд┐рдЯрд╛рд░ рдкреНрд░реЗрдореА рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╕рдВрдЧреАрдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╕реЗ рджреВрд░ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддрд╛ рдерд╛ред рд╣рд░ рдХреЛрдИ рдЬрд┐рд╕рдиреЗ рдХрднреА рдХрд┐рд╕реА рдЧрд┐рдЯрд╛рд░ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдЧрд┐рдЯрд╛рд░ рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП ASIO рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЕрдиреНрдп рднреА рд╕рдВрднрд╡ рд╣реИрдВ, рд▓реЗрдХрд┐рди ASIO рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ)ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдСрдбрд┐рдпреЛ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд╡реНрдпрддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдХ рд╕рд╛рдзрди рдХреЛ рдЦреЗрд▓рддреЗ рд╕рдордп рдПрдХ рдЕрдкреНрд░рд┐рдп рджреЗрд░реА рд╕реБрдирд╛рдИ рджреЗрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЦреЗрд▓ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред ASIO рдЖрдкрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдиреЗ рдкрд░ рд╕рд╛рдЙрдВрдб рдорд┐рдХреНрд╕рд┐рдВрдЧ рдХреЗ рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рддрджрдиреБрд╕рд╛рд░, рджреЗрд░реА рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рдФрд░ рдкрдврд╝реЗрдВред

рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ


рдореИрдВрдиреЗ ASIO рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдбреНрд░рд╛рдЗрд╡рд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореИрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛: рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рдХрдо рд▓реЗрдЦ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рдЬреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ - рдПрд╕рдбреАрдХреЗ рдФрд░ рдХрдИ рдЕрдВрдЧреНрд░реЗрдЬреА-рднрд╛рд╖рд╛ рдордВрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдкрдХреЛ рднреА рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдмрд╛рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА


рдПрд╕рдбреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕реНрдЯреИрдирдмрд░реНрдЧ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдХреЛрдб, рдЬреЛ рдХреЗрд╡рд▓ 20 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдореМрди рдирд┐рднрд╛рддрд╛ рд╣реИ, 500 рд▓рд╛рдЗрдиреЗрдВ рд▓реЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЕрджреНрднреБрдд рдмрд╛рд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред рдзреНрд╡рдирд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢рдВрд╕рдХ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдзреНрд╡рдирд┐ рдзрд╛рд░рд╛рдУрдВ рдФрд░ рдЪреИрдирд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдПрдлрдПрдХреНрд╕ рдкреНрд░рднрд╛рд╡ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдорд┐рд╢реНрд░рдг рдХрд░реЗрдВ ... рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВред рдмрд╛рд╕ рдореЗрдВ рдПрдХ рдмрд╛рд╕рд╕рд┐рдпреЛ рдРрдб-рдСрди рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдкрдХреЛ ASIO рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдХреЛрдб рдХреА рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


  1. рдмрд╛рд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдЗрд╕рдХреЗ рдРрдб-рдСрди рдмрд╛рд╕рд╛рд╕рд┐рдпреЛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╣реИ
  2. рд╣рдо .lib рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрдВрдк рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рд▓рд┐рдм рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдмрд╛рд╕.рд▓рд┐рдм рдФрд░ рдмрд╛рд╕рд╕рд┐рдпреЛ.рд▓рд┐рдм рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛
  3. .dll рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдФрд░ рдбреАрдмрдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (bass.dll рдФрд░ bassasio.dll) рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЬрдм рдЖрдк рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛:



  4. рдЕрдЧрд▓рд╛, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рд╣рдо рд▓рд┐рдВрдХрд░ рдХреЛ .lib рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХрд░ рдХрд╛ рдкрде рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ ред рд╣рдо рд╕реА / рд╕реА ++ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВред





  5. рд╣рдо .h рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рдмрд╛рд╕.рдПрдЪ рдФрд░ рдмрд╛рд╕рд╕рд┐рдпреЛ.рд╣ рдлрд╛рдЗрд▓реЗрдВ ред

    #include "bass.h" #include "bassasio.h" 


рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЫреЛрдЯрд╛ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ рдЬреЛ рдЧрд┐рдЯрд╛рд░ рдХреА рдзреНрд╡рдирд┐ рдмрдЬрд╛рдПрдЧрд╛, рдЕрд░реНрдерд╛рддред рдХрд╛рд░реНрдпрдХреНрд░рдо рдСрдбрд┐рдпреЛ рдЗрдирдкреБрдЯ рд╕реЗ рдСрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдЧрд╛ред рдЖрд╡реЗрджрди рдХреЛрдб рдЬреАрдердм рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ред рдпрд╣ рд╕рд░рд▓ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЧрд┐рдЯрд╛рд░ рдХреЙрдореНрдмреЛ рдХреА рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрдЯрдХ рдФрд░ рдЦреЗрд▓!), рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рдХреА рдзреНрд╡рдирд┐ рд╕реНрдкрд╖реНрдЯ (рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ) рд╣реЛрдЧреАред

рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛, рдЕрдм рд╣рдореЗрдВ рдзреНрд╡рдирд┐ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪрд▓реЛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдУ!

BASS_Init () рдзреНрд╡рдирд┐ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдореНрди рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ:

рдорд╛рдкрджрдВрдбреЛрдВ
int рдбрд┐рд╡рд╛рдЗрд╕ - рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред рдпрджрд┐ рдЖрдк рдкреИрд░рд╛рдореАрдЯрд░ -1 рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрдЧрд░ 0 - рдзреНрд╡рдирд┐ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЦреЗрд▓реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рддред рдХрд┐рд╕реА рднреА рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

DWORD рдлреНрд░реАрдХ - рд╣рд░реНрдЯреНрдЬ рдореЗрдВ рд╕реИрдВрдкрд▓рд┐рдВрдЧ рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА

DWORD рдХреЗ рдЭрдВрдбреЗ - рдЭрдВрдбреЗ ... рдХрдИ рд╣реИрдВ, рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди www.un4seen.com/doc/#bass/BASS_Init.html рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЭрдВрдбреЗ рдХреА рдорджрдж рд╕реЗ рдЖрдк рдзреНрд╡рдирд┐ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреА рдЧрд╣рд░рд╛рдИ, рдореЛрдиреЛ рдпрд╛ рд╕реНрдЯреАрд░рд┐рдпреЛ, рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рд╡рдХреНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдзреНрд╡рдирд┐ рдкреНрд░рдЬрдирди, рдЖрджрд┐ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

HWND рдЬреАрдд - рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП, 0 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред

GUID * clsid - рдХреНрд▓рд╛рд╕ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ DirectSound рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред

ASIO рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рд╕рд░рд▓ рд╣реИред рд╣рдо BASSASIO_Init рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреЗрд╡рд▓ 2 рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:

рдорд╛рдкрджрдВрдбреЛрдВ
int рдбрд┐рд╡рд╛рдЗрд╕ - "рдбрд┐рд╡рд╛рдЗрд╕" рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ ... рд╡рд╣ рддрдХрдиреАрдХ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛рдо рдХрд░реЗрдЧреАред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдиреЗ рдЧрд┐рдЯрд╛рд░ рд░рд┐рдЧ рдЬреИрд╕реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рд╣реИрдВ рдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ ASIO рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрдкрд▓рдмреНрдз "рдбрд┐рд╡рд╛рдЗрд╕" рдХреА рд╕реВрдЪреА рдореЗрдВ рдХрдИ рдЖрдЗрдЯрдо рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП BASS_ASIO_GetDeviceInfo () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ (рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрдВрдЯрдиреА)ред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, 0 рд╣рдорд╛рд░рд╛ ASIO4ALL рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд░реЗрдВрдЧреЗред -1 рдХрд╛ рдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред

 std::cout << "ASIO Devices info:" << std::endl; a = 0; count = 0; BASS_ASIO_DEVICEINFO asio_info; for (a = 0; BASS_ASIO_GetDeviceInfo(a, &asio_info); a++) std::cout << "Device " << a << ") " << asio_info.name << std::endl; std::cout << " ________ " << std::endl; 


рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рд╕реВрдЪреА

DWORD рдЭрдВрдбреЗ - рдЭрдВрдбреЗред рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ 2 рд╣реИрдВ: BASS_ASIO_THREAD - рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдЪрд▓рд╛рдПрдБ рдФрд░ BASS_ASIO_JOINORDER - рдЪреИрдирд▓ рдЪреИрдирд▓реЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдХреЛрдб, рдзреНрд╡рдирд┐ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ ASIO рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг:

 try { if ( ! BASS_Init(0, 44100, 0, 0, NULL) ) throw BASS_ErrorGetCode(); if ( ! BASS_ASIO_Init( 0, NULL ) ) throw BASS_ASIO_ErrorGetCode(); } catch ( int err ) { std::cout << "Err no - " << err << std::endl; system("pause"); return; } 

рд╕рд╡рд╛рд▓ рдЙрда рд╕рдХрддрд╛ рд╣реИ: BASS_Init (0) рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдСрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ ASIO рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ BASSASIO рдПрдбрдСрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рд╛рде рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ BASS рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдорд╛рдирдХ рдзреНрд╡рдирд┐ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЗрд╕рд▓рд┐рдП, 0., рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд╛рдпрдХ рд╣реИрдВ:

  1. рдЖрдк ASIO рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░реЗ рдкрд░ рдорд╛рдирдХ рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдзреНрд╡рдирд┐ (рдХрд╣рддреЗ рд╣реИрдВ ... рд╕рдВрдЧреАрдд рдЪрд▓реЗрдЧрд╛)ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ BASS рдХреА рд╢реБрд░реБрдЖрдд рдХрд░рддреЗ рд╕рдордп рдФрд░ ASIO рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ (рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди, рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЗрд╕рдХрд╛ рдЖрдЗрдХрди рд╣реЛрдЧрд╛)ред
  2. рдЙрдкрд▓рдмреНрдз рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, BASS_GetDeviceInfo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
     setlocale(LC_ALL, "Rus"); std::cout << "Devices info:" << std::endl; int a, count = 0; BASS_DEVICEINFO info; for (a = 1; BASS_GetDeviceInfo(a, &info); a++) { if (info.flags&BASS_DEVICE_ENABLED) // device is enabled std::cout << "Device " << a << ") " << info.name << " is availible" << std::endl; else std::cout << "Device " << a << ") " << info.name << " is unable" << std::endl; } std::cout << " ________ " << std::endl; 



    BASS рдХреЗрд╡рд▓ рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд╣реИрдВред рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдбрд┐рд╡рд╛рдЗрд╕ рдмрд╕ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдВрдЧреЗред


    рд╕рдХреНрд░рд┐рдп рдзреНрд╡рдирд┐ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕

    BASSASIO рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╣реА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВред рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдзреНрд╡рдирд┐ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдЪреБрдиреЗрдВред
  3. рдпрд╣ BASS рдФрд░ BASSASIO рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдзреНрд╡рдирд┐ рдХреЛ рдПрдХ рд╕рд╛рде рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ - ASIO рддрдХрдиреАрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИ рдХрд┐ рдзреНрд╡рдирд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдорд┐рд╢реНрд░рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧреА рдФрд░ рдмрд╛рдж рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рдкрд░ рдЬрд╛рдПрдЧреАред рдпрд╛рдиреА рдЖрдк рдХреЗрд╡рд▓ ASIO рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдзреНрд╡рдирд┐ рд╕реБрдиреЗрдВрдЧреЗред

рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрдлрд╝реЛрди рд╕реЗ рдзреНрд╡рдирд┐ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рддрдХ рдзреНрд╡рдирд┐ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЪреИрдирд▓ рдХреЛ "рджрд░реНрдкрдг" рдХрд░рдирд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдЪреИрдирд▓ рд╣реИрдВ: рдорд╛рдЗрдХреНрд░реЛрдлреЛрди, рдмрд╛рдпрд╛рдВ рдИрдпрд░рдлреЛрди рдФрд░ рджрд╛рдпрд╛рдВ рдИрдпрд░рдлреЛрдиред рдорд╛рдЗрдХреНрд░реЛрдлреЛрди рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдЪреИрдирд▓реЛрдВ рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

 BOOL BASS_ASIO_ChannelEnableMirror( DWORD channel -   BOOL input2 -   ? (0  1) DWORD channel2 тАУ    ( ) ); 

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рд╣рдореЗрдВ рдЗрдирдкреБрдЯ рдЪреИрдирд▓ 0 рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдЪреИрдирд▓ 0 рдФрд░ 1 рдХреЛ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 BASS_ASIO_ChannelEnableMirror( 0, 1, 0 ); BASS_ASIO_ChannelEnableMirror( 1, 1, 0 ); 

рдлрд┐рд░ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдореБрдЭреЗ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореБрдЭреЗ рдХрд┐рди рдЪреИрдирд▓реЛрдВ рдХреЛ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрддреНрддрд░ - рдЪреИрдирд▓реЛрдВ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА BASS_ASIO_ ChannelGetInfo рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 a = 0; BASS_ASIO_CHANNELINFO channel_info; std::cout << "inputs: " << std::endl; for (a = 0; BASS_ASIO_ChannelGetInfo(0, a, &channel_info ); a++ ) std::cout << a << ") " << channel_info.name << " format: " << channel_info.format << std::endl; std::cout << "Outputs: " << std::endl; for (a = 0; BASS_ASIO_ChannelGetInfo(1, a, &channel_info); a++) std::cout << a << ") " << channel_info.name << " format: " << channel_info.format << std::endl; std::cout << "__________" << std::endl; 



рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рддреИрдпрд╛рд░ рд╣реИрдВред рдкреНрд░рд╛рд░рдВрдн - BASS_ASIO_Start ред рдЖрдк рдЕрдзрд┐рдХрддрдо рдирдореВрдирд╛ рд▓рдВрдмрд╛рдИ рдФрд░ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдзрд╛рд░рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрдиреНрд╣реЗрдВ рд╢реВрдиреНрдп рд╕реЗ рднрд░реЗрдВ)ред

 BASS_ASIO_Start( 0, 0 ); 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдм рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдПрдХ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рд╕рд┐рд╕реНрдЯрдо ("рдкреЙрдЬрд╝") рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛, рддрд╛рдХрд┐ рдпрд╣ рд▓реЙрдиреНрдЪ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдмрдВрдж рди рд╣реЛ, рдФрд░ рдЗрд╕рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдореЗрдореЛрд░реА рдХреЛ рдЦрд╛рд▓реА рдХрд░ рджреЗрдВ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдВред

 BASS_ASIO_Stop(); BASS_ASIO_Free(); BASS_Stop(); BASS_Free(); return; 

рдкрд░рд┐рдгрд╛рдо


рдореИрдВ рдЬреАрдереВрдм рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ ASIO рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд░рд▓ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯ рдХреЛ рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рд╡рд╣ рджреЗрд░реА рдирд╣реАрдВ рд╕реБрдирд╛рдИ рджреЗрддреА рдЬреЛ рдорд╛рдирдХ рд╡рд┐рдВрдбреЛрдЬ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдорд╛рдирдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╣реЛ рд╕рдХрддреА рд╣реИред рдмреЗрд╢рдХ, BASS рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ BASSASIO рдРрдб-рдСрди рджреЛрдиреЛрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдКрдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рддреБрд▓рдирд╛ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рди рддреЛ рд▓реЗрдЦ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдФрд░ рди рд╣реА рдореЗрд░рд╛ рдЬреНрдЮрд╛рди рдмрд┐рд▓реНрдХреБрд▓ рд╕рдм рдХреБрдЫ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдпрд╣ рд╡рд┐рд╖рдп рдЖрдкрдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдереЛрдбрд╝рд╛ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛, рддреЛ рдореБрдЭреЗ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реБрдИред рдмрджрд▓реЗ рдореЗрдВ, рдореИрдВ рдЕрдЧрд▓реА рдХрдбрд╝реА рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рдордп рдЪреБрд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд╣рдо DX8 рд╕реЗ рдорд╛рдирдХ рдПрдлрдПрдХреНрд╕ рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЧрд┐рдЯрд╛рд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдПрдХ рдЭрд▓рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Source: https://habr.com/ru/post/hi464843/


All Articles