Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6321 → Rev 6322

/programs/develop/libraries/exif/trunk/exif.asm
928,8 → 928,10
; num - ¯®à浪®¢ë© ­®¬¥à ⥣  (­ ç¨­ ¥âáï á 1)
; txt - 㪠§ â¥«ì ­  ⥪áâ, ªã¤  ¡ã¤¥â § ¯¨á ­® §­ ç¥­¨¥
; t_max - ¬ ªá¨¬ «ì­ë© à §¬¥à ⥪áâ 
;output:
; txt - § ¯®«­ï¥âáï ⥪á⮬ ¢ ¢¨¤¥ "¯ à ¬¥âà: §­ ç¥­¨¥", ¥á«¨ ­¥ ­ ©¤¥­® â® ¯ãáâ ï áâப 
align 4
proc exif_get_app1_tag, app1:dword, num:dword, txt:dword, t_max:dword
proc exif_get_tag, app1:dword, num:dword, txt:dword, t_max:dword
pushad
mov eax,[app1]
mov edi,[txt]
968,6 → 970,55
endp
 
;input:
; app1 - 㪠§ â¥«ì ­  ­ ç «® exif.app1
; id - ¨¤¥­â¨ä¨ª â®à ⥣  §­ ç¥­¨¥ ª®â®à®£® ­ã¦­® ­ ©â¨
; txt - 㪠§ â¥«ì ­  ⥪áâ, ªã¤  ¡ã¤¥â § ¯¨á ­® §­ ç¥­¨¥
; t_max - ¬ ªá¨¬ «ì­ë© à §¬¥à ⥪áâ 
;output:
; txt - § ¯®«­ï¥âáï ⥪á⮬ ¢ ¢¨¤¥ "¯ à ¬¥âà: §­ ç¥­¨¥", ¥á«¨ ­¥ ­ ©¤¥­® â® ¯ãáâ ï áâப 
align 4
proc exif_get_tag_id, app1:dword, id:dword, txt:dword, t_max:dword
pushad
mov eax,[app1]
mov edi,[txt]
 
xor edx,edx
mov byte[edi],dl
cmp [eax],edx
je .end_f ;¥á«¨ ­¥ ­ ©¤¥­ 㪠§ â¥«ì ­  ­ ç «® exif.app1
 
mov ebx,[id]
movzx edx,word[eax+offs_m_or_i] ;if 'MM' edx=1
bt edx,0
jnc @f
ror bx,8
@@:
 
;¡¥à¥¬ ç¨á«® ⥣®¢
mov eax,[eax]
movzx ecx,word[eax]
bt edx,0
jnc @f
ror cx,8
@@:
;¢ ecx - ç¨á«® ⥣®¢
 
;¨é¥¬ § ¤ ­­ë© ⥣
add eax,offs_tag_0
.cycle_0:
cmp word[eax],bx ;word[eax+0] - ª®¤ ⥣ 
je @f
add eax,tag_size
loop .cycle_0
jmp .end_f
@@:
stdcall read_tag_value,[app1],[t_max]
.end_f:
popad
ret
endp
 
;input:
; app1 - 㪠§ â¥«ì ­  exif.app1 ¨«¨ ­  exif.app1.child
; child - 㪠§ â¥«ì ¤«ï § ¯®«­¥­¨ï ­ ç «  ¤®ç¥à­¨å ⥣®¢ exif.app1.child
; c_tag - ⥣ ¤«ï ª®â®à®£® ¤¥« ¥âáï ¯®¨áª ¤®ç¥à­¨å
974,7 → 1025,7
;output:
; child - 㪠§ â¥«ì ­  ­ ç «® ¤®ç¥à­¨å ⥣®¢
align 4
proc exif_get_app1_child, app1:dword, child:dword , c_tag:dword
proc exif_get_child, app1:dword, child:dword , c_tag:dword
pushad
mov eax,[app1]
mov edi,[child]
1106,11 → 1157,11
 
.suport:
;­ å®¤¨¬ ⥣ 0x8769 (à áè¨à¥­­ë¥ ¤ ­­ë¥ ¯® Exif)
stdcall exif_get_app1_child, eax,edi,0x8769
stdcall exif_get_child, eax,edi,0x8769
cmp dword[edi],0
je .no_suport
;­ å®¤¨¬ ⥣ 0x927c (¤ ­­ë¥ Maker ¯® ª ¬¥à¥)
stdcall exif_get_app1_child, edi,edi, 0x927c
stdcall exif_get_child, edi,edi, 0x927c
cmp dword[edi],0
je .no_suport
 
1673,11 → 1724,14
align 16
EXPORTS:
dd sz_exif_get_app1, exif_get_app1
dd sz_exif_get_app1_tag, exif_get_app1_tag
dd sz_exif_get_app1_child, exif_get_app1_child
dd sz_exif_get_app2, exif_get_app2
dd sz_exif_get_tag, exif_get_tag
dd sz_exif_get_tag_id, exif_get_tag_id
dd sz_exif_get_child, exif_get_child
dd 0,0
sz_exif_get_app1 db 'exif_get_app1',0
sz_exif_get_app1_tag db 'exif_get_app1_tag',0
sz_exif_get_app1_child db 'exif_get_app1_child',0
sz_exif_get_app2 db 'exif_get_app2',0
sz_exif_get_tag db 'exif_get_tag',0
sz_exif_get_tag_id db 'exif_get_tag_id',0
sz_exif_get_child db 'exif_get_child',0