Subversion Repositories Kolibri OS

Rev

Rev 6315 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6315 Rev 6322
Line 926... Line 926...
926
;input:
926
;input:
927
; app1 - 㪠§ â¥«ì ­  ­ ç «® exif.app1
927
; app1 - 㪠§ â¥«ì ­  ­ ç «® exif.app1
928
; num - ¯®à浪®¢ë© ­®¬¥à ⥣  (­ ç¨­ ¥âáï á 1)
928
; num - ¯®à浪®¢ë© ­®¬¥à ⥣  (­ ç¨­ ¥âáï á 1)
929
; txt - 㪠§ â¥«ì ­  ⥪áâ, ªã¤  ¡ã¤¥â § ¯¨á ­® §­ ç¥­¨¥
929
; txt - 㪠§ â¥«ì ­  ⥪áâ, ªã¤  ¡ã¤¥â § ¯¨á ­® §­ ç¥­¨¥
930
; t_max - ¬ ªá¨¬ «ì­ë© à §¬¥à ⥪áâ 
930
; t_max - ¬ ªá¨¬ «ì­ë© à §¬¥à ⥪áâ 
-
 
931
;output:
-
 
932
; txt - § ¯®«­ï¥âáï ⥪á⮬ ¢ ¢¨¤¥ "¯ à ¬¥âà: §­ ç¥­¨¥", ¥á«¨ ­¥ ­ ©¤¥­® â® ¯ãáâ ï áâப 
931
align 4
933
align 4
932
proc exif_get_app1_tag, app1:dword, num:dword, txt:dword, t_max:dword
934
proc exif_get_tag, app1:dword, num:dword, txt:dword, t_max:dword
933
pushad
935
pushad
934
	mov eax,[app1]
936
	mov eax,[app1]
935
	mov edi,[txt]
937
	mov edi,[txt]
936
	mov ecx,[num]
938
	mov ecx,[num]
Line 966... Line 968...
966
popad
968
popad
967
	ret
969
	ret
968
endp
970
endp
Line 969... Line 971...
969
 
971
 
-
 
972
;input:
-
 
973
; app1 - 㪠§ â¥«ì ­  ­ ç «® exif.app1
-
 
974
; id - ¨¤¥­â¨ä¨ª â®à ⥣  §­ ç¥­¨¥ ª®â®à®£® ­ã¦­® ­ ©â¨
-
 
975
; txt - 㪠§ â¥«ì ­  ⥪áâ, ªã¤  ¡ã¤¥â § ¯¨á ­® §­ ç¥­¨¥
-
 
976
; t_max - ¬ ªá¨¬ «ì­ë© à §¬¥à ⥪áâ 
-
 
977
;output:
-
 
978
; txt - § ¯®«­ï¥âáï ⥪á⮬ ¢ ¢¨¤¥ "¯ à ¬¥âà: §­ ç¥­¨¥", ¥á«¨ ­¥ ­ ©¤¥­® â® ¯ãáâ ï áâப 
-
 
979
align 4
-
 
980
proc exif_get_tag_id, app1:dword, id:dword, txt:dword, t_max:dword
-
 
981
pushad
-
 
982
	mov eax,[app1]
-
 
983
	mov edi,[txt]
-
 
984
 
-
 
985
	xor edx,edx
-
 
986
	mov byte[edi],dl
-
 
987
	cmp [eax],edx
-
 
988
	je .end_f ;¥á«¨ ­¥ ­ ©¤¥­ 㪠§ â¥«ì ­  ­ ç «® exif.app1
-
 
989
 
-
 
990
	mov ebx,[id]
-
 
991
	movzx edx,word[eax+offs_m_or_i] ;if 'MM' edx=1
-
 
992
	bt edx,0
-
 
993
	jnc @f
-
 
994
		ror bx,8
-
 
995
	@@:
-
 
996
 
-
 
997
	;¡¥à¥¬ ç¨á«® ⥣®¢
-
 
998
	mov eax,[eax]
-
 
999
	movzx ecx,word[eax]
-
 
1000
	bt edx,0
-
 
1001
	jnc @f
-
 
1002
		ror cx,8
-
 
1003
	@@:
-
 
1004
	;¢ ecx - ç¨á«® ⥣®¢
-
 
1005
 
-
 
1006
	;¨é¥¬ § ¤ ­­ë© ⥣
-
 
1007
	add eax,offs_tag_0
-
 
1008
	.cycle_0:
-
 
1009
		cmp word[eax],bx ;word[eax+0] - ª®¤ ⥣ 
-
 
1010
		je @f
-
 
1011
		add eax,tag_size
-
 
1012
		loop .cycle_0
-
 
1013
	jmp .end_f
-
 
1014
	@@:
-
 
1015
		stdcall read_tag_value,[app1],[t_max]
-
 
1016
	.end_f:
-
 
1017
popad
-
 
1018
	ret
-
 
1019
endp
-
 
1020
 
970
;input:
1021
;input:
971
; app1 - 㪠§ â¥«ì ­  exif.app1 ¨«¨ ­  exif.app1.child
1022
; app1 - 㪠§ â¥«ì ­  exif.app1 ¨«¨ ­  exif.app1.child
972
; child - 㪠§ â¥«ì ¤«ï § ¯®«­¥­¨ï ­ ç «  ¤®ç¥à­¨å ⥣®¢ exif.app1.child
1023
; child - 㪠§ â¥«ì ¤«ï § ¯®«­¥­¨ï ­ ç «  ¤®ç¥à­¨å ⥣®¢ exif.app1.child
973
; c_tag - ⥣ ¤«ï ª®â®à®£® ¤¥« ¥âáï ¯®¨áª ¤®ç¥à­¨å
1024
; c_tag - ⥣ ¤«ï ª®â®à®£® ¤¥« ¥âáï ¯®¨áª ¤®ç¥à­¨å
974
;output:
1025
;output:
975
; child - 㪠§ â¥«ì ­  ­ ç «® ¤®ç¥à­¨å ⥣®¢
1026
; child - 㪠§ â¥«ì ­  ­ ç «® ¤®ç¥à­¨å ⥣®¢
976
align 4
1027
align 4
977
proc exif_get_app1_child, app1:dword, child:dword , c_tag:dword
1028
proc exif_get_child, app1:dword, child:dword , c_tag:dword
978
pushad
1029
pushad
979
	mov eax,[app1]
1030
	mov eax,[app1]
Line 980... Line 1031...
980
	mov edi,[child]
1031
	mov edi,[child]
Line 1104... Line 1155...
1104
	;¢á¥ ®áâ «ì­ë¥ ­¥ ¯®¤¤¥à¦¨¢ îâáï
1155
	;¢á¥ ®áâ «ì­ë¥ ­¥ ¯®¤¤¥à¦¨¢ îâáï
1105
	jmp .no_suport
1156
	jmp .no_suport
Line 1106... Line 1157...
1106
 
1157
 
1107
	.suport:
1158
	.suport:
1108
	;­ å®¤¨¬ ⥣ 0x8769 (à áè¨à¥­­ë¥ ¤ ­­ë¥ ¯® Exif)
1159
	;­ å®¤¨¬ ⥣ 0x8769 (à áè¨à¥­­ë¥ ¤ ­­ë¥ ¯® Exif)
1109
	stdcall exif_get_app1_child, eax,edi,0x8769
1160
	stdcall exif_get_child, eax,edi,0x8769
1110
	cmp dword[edi],0
1161
	cmp dword[edi],0
1111
	je .no_suport
1162
	je .no_suport
1112
	;­ å®¤¨¬ ⥣ 0x927c (¤ ­­ë¥ Maker ¯® ª ¬¥à¥)
1163
	;­ å®¤¨¬ ⥣ 0x927c (¤ ­­ë¥ Maker ¯® ª ¬¥à¥)
1113
	stdcall exif_get_app1_child, edi,edi, 0x927c
1164
	stdcall exif_get_child, edi,edi, 0x927c
1114
	cmp dword[edi],0
1165
	cmp dword[edi],0
Line 1115... Line 1166...
1115
	je .no_suport
1166
	je .no_suport
1116
 
1167
 
Line 1671... Line 1722...
1671
 
1722
 
1672
 
1723
 
1673
align 16
1724
align 16
1674
EXPORTS:
-
 
1675
	dd sz_exif_get_app1, exif_get_app1
-
 
1676
	dd sz_exif_get_app1_tag, exif_get_app1_tag
1725
EXPORTS:
-
 
1726
	dd sz_exif_get_app1, exif_get_app1
-
 
1727
	dd sz_exif_get_app2, exif_get_app2
-
 
1728
	dd sz_exif_get_tag, exif_get_tag
1677
	dd sz_exif_get_app1_child, exif_get_app1_child
1729
	dd sz_exif_get_tag_id, exif_get_tag_id
1678
	dd sz_exif_get_app2, exif_get_app2
1730
	dd sz_exif_get_child, exif_get_child
1679
	dd 0,0
-
 
1680
	sz_exif_get_app1 db 'exif_get_app1',0
-
 
1681
	sz_exif_get_app1_tag db 'exif_get_app1_tag',0
1731
	dd 0,0
-
 
1732
	sz_exif_get_app1 db 'exif_get_app1',0
-
 
1733
	sz_exif_get_app2 db 'exif_get_app2',0
-
 
1734
	sz_exif_get_tag db 'exif_get_tag',0
-
 
1735
	sz_exif_get_tag_id db 'exif_get_tag_id',0