| 
									
										
										
										
											2006-01-16 16:39:11 +00:00
										 |  |  | !------------------------------------------------ audio_init
 | 
					
						
							|  |  |  | subroutine audio_init(ndin,ndout)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef Win32
 | 
					
						
							|  |  |  |   use dfmt
 | 
					
						
							|  |  |  |   integer Thread1,Thread2
 | 
					
						
							|  |  |  |   external a2d,decode1
 | 
					
						
							| 
									
										
										
										
											2006-01-10 02:43:23 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2006-01-16 16:39:11 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   integer*2 a(225000)           !Pixel values for 750 x 300 array
 | 
					
						
							|  |  |  |   integer brightness,contrast
 | 
					
						
							|  |  |  |   include 'gcom1.f90'
 | 
					
						
							|  |  |  |   include 'gcom2.f90'
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   nmode=1
 | 
					
						
							|  |  |  |   if(mode(1:4).eq.'JT65') then
 | 
					
						
							|  |  |  |      nmode=2
 | 
					
						
							|  |  |  |      if(mode(5:5).eq.'A') mode65=1
 | 
					
						
							|  |  |  |      if(mode(5:5).eq.'B') mode65=2
 | 
					
						
							|  |  |  |      if(mode(5:5).eq.'C') mode65=4
 | 
					
						
							|  |  |  |   endif
 | 
					
						
							|  |  |  |   if(mode.eq.'Echo') nmode=3
 | 
					
						
							|  |  |  |   if(mode.eq.'JT6M') nmode=4
 | 
					
						
							|  |  |  |   ndevin=ndin
 | 
					
						
							|  |  |  |   ndevout=ndout
 | 
					
						
							|  |  |  |   TxOK=0
 | 
					
						
							|  |  |  |   Transmitting=0
 | 
					
						
							|  |  |  |   nfsample=11025
 | 
					
						
							|  |  |  |   nspb=1024
 | 
					
						
							|  |  |  |   nbufs=2048
 | 
					
						
							|  |  |  |   nmax=nbufs*nspb
 | 
					
						
							|  |  |  |   nwave=60*nfsample
 | 
					
						
							|  |  |  |   ngo=1
 | 
					
						
							|  |  |  |   brightness=0
 | 
					
						
							|  |  |  |   contrast=0
 | 
					
						
							|  |  |  |   nsec=1
 | 
					
						
							|  |  |  |   df=11025.0/4096
 | 
					
						
							|  |  |  |   f0=800.0
 | 
					
						
							|  |  |  |   do i=1,nwave
 | 
					
						
							|  |  |  |      iwave(i)=nint(32767.0*sin(6.283185307*i*f0/nfsample))
 | 
					
						
							|  |  |  |   enddo
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef Win32
 | 
					
						
							|  |  |  | !  Priority classes (for processes):
 | 
					
						
							|  |  |  | !     IDLE_PRIORITY_CLASS               64
 | 
					
						
							|  |  |  | !     NORMAL_PRIORITY_CLASS             32
 | 
					
						
							|  |  |  | !     HIGH_PRIORITY_CLASS              128
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | !  Priority definitions (for threads):
 | 
					
						
							|  |  |  | !     THREAD_PRIORITY_IDLE             -15
 | 
					
						
							|  |  |  | !     THREAD_PRIORITY_LOWEST            -2
 | 
					
						
							|  |  |  | !     THREAD_PRIORITY_BELOW_NORMAL      -1
 | 
					
						
							|  |  |  | !     THREAD_PRIORITY_NORMAL             0
 | 
					
						
							|  |  |  | !     THREAD_PRIORITY_ABOVE_NORMAL       1
 | 
					
						
							|  |  |  | !     THREAD_PRIORITY_HIGHEST            2
 | 
					
						
							|  |  |  | !     THREAD_PRIORITY_TIME_CRITICAL     15
 | 
					
						
							|  |  |  |     
 | 
					
						
							|  |  |  |   m0=SetPriorityClass(GetCurrentProcess(),NORMAL_PRIORITY_CLASS)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ! Start a thread for doing A/D and D/A with sound card.
 | 
					
						
							| 
									
										
										
										
											2006-03-21 15:08:20 +00:00
										 |  |  |   Thread1=CreateThread(0,0,a2d,0,CREATE_SUSPENDED,id1)
 | 
					
						
							| 
									
										
										
										
											2006-01-16 16:39:11 +00:00
										 |  |  |   m1=SetThreadPriority(Thread1,THREAD_PRIORITY_ABOVE_NORMAL)
 | 
					
						
							|  |  |  |   m2=ResumeThread(Thread1)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ! Start a thread for background decoding.
 | 
					
						
							| 
									
										
										
										
											2006-03-21 15:08:20 +00:00
										 |  |  |   Thread2=CreateThread(0,0,decode1,0,CREATE_SUSPENDED,id2)
 | 
					
						
							| 
									
										
										
										
											2006-01-16 16:39:11 +00:00
										 |  |  |   m3=SetThreadPriority(Thread2,THREAD_PRIORITY_BELOW_NORMAL)
 | 
					
						
							|  |  |  |   m4=ResumeThread(Thread2)
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | !  print*,'Audio INIT called.'
 | 
					
						
							|  |  |  |   ierr=start_threads(ndevin,ndevout,y1,y2,nmax,iwrite,iwave,nwave,    &
 | 
					
						
							|  |  |  |        11025,NSPB,TRPeriod,TxOK,ndebug,Transmitting,            &
 | 
					
						
							| 
									
										
										
										
											2006-07-06 13:44:34 +00:00
										 |  |  |        Tsec,ngo,nmode,tbuf,ibuf,ndsec,PttPort,devin_name,devout_name)
 | 
					
						
							| 
									
										
										
										
											2006-01-16 16:39:11 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return
 | 
					
						
							|  |  |  | end subroutine audio_init
 |