BeeLine и НСС

Когда покупал сотовый телефон (а это было в конце июля 2003 года), я подключился к BeeLine, потому что GPRS хотел использовать, а он тогда был ещё бесплатным (в проверяющем режиме).
Read more...
Comments (2)

Сегодня программировал.

Сделал много. По сути, сделал полный шаг в сторону рабочей программы.
Этот шаг - универсальный алгоритм по заполнению информации о микшерах в системе в массив.
То есть, собирает всю информацию о микшерах и заносит её в массив.
Потом с ним можно работать, обрабатывая информацию о микшерах.
Вот основная подпрограмма:

;----------------------------------------------------------
; Открывает указанный микшер и заполняет структуру о этом микшере
;
; IN -> Номер микшера;
;
; OUT=> Адрес структуры с информацией об открытом микшере;
;
proc Mixer_Load
ARG @@uMixerID :dword
USES esi,edi,ebx
LOCAL @@MixerCaps :MIXERCAPS, @@mlDest :MIXERLINE,\
@@mlSrc :MIXERLINE, @@dwDestination :dword, @@arrMixer :dword,\
@@phmx0 :dword, @@arrMixer_size :dword
;--
Call GlobalAlloc, GPTR, 4 + (size MIXERCAPS) + 4 + 4 + 4
or eax, eax
jz @@exit_err

Смотреть её полностью
А вот алгоритм установки движков, основанный на этом массиве и подпрограммах.
Заметьте, как всё просто обрабатывается, быстро и универсально!

call Mixer_new
or eax, eax
jz @@exit1
mov [arrMixers], eax
;===
mov eax, [arrMixers]
mov eax, [eax+4]

mov esi, [eax]
mov ecx, [eax+12]
add eax, [eax+8]
xchg edi, eax
@@n10:
cmp [(t MIXERLINE edi).dwComponentType], \
MIXERLINE_COMPONENTTYPE_SRC_ANALOG
jnz @@o28_0

call InitSlider, esi, [hwnd1], [(t MIXERLINE edi).dwLineID],\
MIXERCONTROL_CONTROLTYPE_VOLUME
@@o28_0:
cmp [(t MIXERLINE edi).dwComponentType], MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT
jnz @@o28

call InitSlider, esi, [hwnd0], [(t MIXERLINE edi).dwLineID],\
MIXERCONTROL_CONTROLTYPE_VOLUME

@@o28:
add edi, size MIXERLINE
dec ecx
jnz @@n10

Read more...