Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Kameleon by Br3tt (Read 316359 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Kameleon by Br3tt

Reply #100
Any word on whether the height of the coverflow/playlist/album browser can be changed and/or be kept fixed?

As shown in the screenshot below, the height of this pane is 40% of the skin, and only about 175px is really needed to use coverflow/playlist/album browser.


Kameleon by Br3tt

Reply #101
Any word on whether the height of the coverflow/playlist/album browser can be changed and/or be kept fixed?

As shown in the screenshot below, the height of this pane is 40% of the skin, and only about 175px is really needed to use coverflow/playlist/album browser.

http://img217.imageshack.us/img217/9067/kameleonns7.jpg


no setting for that (not yet)

you should fix the colors for your quick search panel ...

Kameleon by Br3tt

Reply #102
I just registered to thank you for such an amazing theme!  All the hard work put into this is much appreciated!

Kameleon by Br3tt

Reply #103
I just registered to thank you for such an amazing theme!  All the hard work put into this is much appreciated!


Thanx and welcome on HA Sgolym

Kameleon 1.0c released

-> added some variables for foo_exvar paths and filenames : %band%, %performer%, %discogs_artist_id% + some fixes

Kameleon by Br3tt

Reply #104
is your site hosted from your computer or just a really slow webhost?

Kameleon by Br3tt

Reply #105
Thanks for the fast FCL revisions! You kick ass!

Are these two buttons backwards? It seems that they indicate the opposite of what they do.



Kameleon by Br3tt

Reply #107
After playing around with Kameleon a little longer I've decided its awesome.
Curacao was great, but this just beautiful.
However I have 2 feature requests

1. Under the Library menu, i am missing the rescan library option.
I'd love to see that added to your menu's.

2. A third option on the aliencat background switcher to show Album Art, Artist Pic or Default Bg's
I've got some large album pics that look really good as backgrounds. Plus some artist's have pretty ugly mugs

Kameleon by Br3tt

Reply #108
curious, anyone here on windows 7 x64 and having an issue with chronflow? I have the latest ATI beta drivers and prior to that it was the default windows 7 drivers, and chronflow keeps throwing the unable to get hardware accelerated pixelformat or whatever it says. I guess I won't be using that feature. other than that you have outdone yourself again Falstaff!

Kameleon by Br3tt

Reply #109
you should consider hosting your files on rapidshare. you can create a free 'collector's account' and host your files there. when people download your files, you get points. you can exchange the points for a premium account.

as popular as your skins are, you could get a lot of points very fast

Kameleon by Br3tt

Reply #110
1. Under the Library menu, i am missing the rescan library option.
I'd love to see that added to your menu's.


With the 0.9.6 line of foobar it reloads the library automatically when changes to the library folders occur.


Kameleon by Br3tt

Reply #112
This scaling bug is still happening with FLC 1.0c. No idea what is triggering it.


Kameleon by Br3tt

Reply #113
4. Is there a way to make Kameleon show the last playlist used? I could do this in Curacao, but when I open foobar with Kameleon, it goes to my default library playlist.


file -> startup playlist -> last playlist

(at least it works with my foo:))


I searched and searched and could not find this menu sequence.
Of course I can find "File" But when I click it I find no such option as "Startup Playlist. Where is it exactly? 

Fantastic config Falstaff!

Kameleon by Br3tt

Reply #114
Great work br3tt!!!

i have a problem thou. when i add my music library, an than creates an auto-playlist, i get an error when i restart foobar, than foobar closed, what ca i do?

the error i get:

Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 0408DF50h
Access violation, operation: read, address: 0A785000h
Call path not available.
Code bytes (0408DF50h):
0408DF10h:  75 DE E9 37 02 00 00 8B 7C 24 38 8B 4C 24 44 8D
0408DF20h:  14 7F 8B C2 8B 54 24 50 2B D0 85 ED 8B 01 8B 4C
0408DF30h:  24 54 89 54 24 34 0F 86 12 02 00 00 89 6C 24 38
0408DF40h:  83 FF 03 8B F7 76 65 8D 57 FC C1 EA 02 83 C2 01
0408DF50h:  8B 19 81 CB 00 00 00 FF 89 18 8B 59 04 0F B6 69
0408DF60h:  03 81 CB 00 00 FF FF C1 E3 08 0B DD 89 58 04 8B
0408DF70h:  59 08 0F B7 69 06 83 C0 04 81 CB 00 FF FF FF C1
0408DF80h:  E3 10 0B DD 83 C0 04 89 18 8B 59 08 C1 EB 08 83
Stack (07ACF950h):
07ACF930h:  7C967E3F 7C9CB178 7C967DE9 01269E84
07ACF940h:  01D025E0 0000FFFF 7FFDF000 00255220
07ACF950h:  00000000 070CAF40 00000000 06DE2970
07ACF960h:  006B006C 00000000 0000000A 0000000C
07ACF970h:  00000000 000002E8 00000000 00000006
07ACF980h:  04096CEF 00000002 00000001 00000101
07ACF990h:  00000007 06FDE7A8 00000000 00000000
07ACF9A0h:  000005CC 0A6D0020 00000000 00000000
07ACF9B0h:  00000000 00000000 00000000 00000007
07ACF9C0h:  07ACF9B0 07ACF9F8 07ACFBF4 07ACFA00
07ACF9D0h:  02BF0000 7C960202 00000011 02BF09B8
07ACF9E0h:  02BF0000 00000000 07ACF9D8 7C9600A4
07ACF9F0h:  07ACFC1C 7C95E900 7C960208 FFFFFFFF
07ACFA00h:  00000FA0 7C961066 7C9601BB 0000007C
07ACFA10h:  00000000 7C9600A4 0AB20000 FFFFFF73
07ACFA20h:  02BF0050 076C0000 0A6D0000 00000000
07ACFA30h:  00C701D8 00000000 00000000 FFFFFF6A
07ACFA40h:  FFFFFF69 07ACFA78 04094F2B 06DE2970
07ACFA50h:  07311688 07311688 06DDC978 00000001
07ACFA60h:  06D61698 07ACFA54 02BF01B8 07ACFAA0
Registers:
EAX: 0AD11018, EBX: FF000000, ECX: 0A785000, EDX: 00000036
ESI: 000000DA, EDI: 000001EE, EBP: 00000000, ESP: 07ACF950
Crash location: "atioglxx", loaded at 03BA0000h - 0471A000h
Symbol: "atiPPHSN" (+004C9580h)

Loaded modules:
foobar2000   loaded at 00400000h - 0053B000h
ntdll loaded at 7C950000h - 7C9F8000h
kernel32 loaded at 7C800000h - 7C94D000h
COMCTL32 loaded at 77370000h - 77473000h
msvcrt   loaded at 77BB0000h - 77C08000h
ADVAPI32 loaded at 77D70000h - 77E1A000h
RPCRT4   loaded at 77E20000h - 77EB2000h
Secur32   loaded at 77F90000h - 77FA1000h
GDI32 loaded at 77EC0000h - 77F09000h
USER32   loaded at 77CE0000h - 77D70000h
SHLWAPI   loaded at 77F10000h - 77F8C000h
SHELL32   loaded at 7E1E0000h - 7EE24000h
ole32 loaded at 77480000h - 775BD000h
shared   loaded at 10000000h - 1002A000h
UxTheme   loaded at 5B210000h - 5B248000h
COMDLG32 loaded at 76310000h - 76377000h
IMM32 loaded at 762F0000h - 7630D000h
LPK   loaded at 62EC0000h - 62EC9000h
USP10 loaded at 754A0000h - 7550B000h
avgrsstx loaded at 003A0000h - 003A5000h
RocketDock   loaded at 00A70000h - 00A82000h
PSAPI loaded at 76B70000h - 76B7B000h
MSCTF loaded at 74670000h - 746BC000h
msctfime loaded at 753F0000h - 7541E000h
foo_uie_albumlist loaded at 00B10000h - 00B4D000h
foo_dsp_std   loaded at 00B70000h - 00BB8000h
foo_uie_wsh_panel loaded at 00BE0000h - 00C0F000h
OLEAUT32 loaded at 770C0000h - 7714B000h
gdiplus   loaded at 4C920000h - 4CAC6000h
foo_run   loaded at 00D90000h - 00DBD000h
foo_uie_vis_channel_spectrum loaded at 00DE0000h - 00E1D000h
MSIMG32   loaded at 762E0000h - 762E5000h
WINMM loaded at 76AC0000h - 76AED000h
foo_albumlist loaded at 00EC0000h - 00F2B000h
foo_cdda loaded at 00F50000h - 00F90000h
foo_uie_graphical_browser loaded at 00FB0000h - 01044000h
foo_rgscan   loaded at 01060000h - 010BB000h
foo_exvar loaded at 010E0000h - 01108000h
foo_chronflow loaded at 01230000h - 01291000h
OPENGL32 loaded at 5F1C0000h - 5F28C000h
GLU32 loaded at 69030000h - 69050000h
DDRAW loaded at 736C0000h - 7370B000h
DCIMAN32 loaded at 73B20000h - 73B26000h
foo_playback_custom   loaded at 01DC0000h - 01E05000h
WINSPOOL loaded at 72F60000h - 72F86000h
foo_playcount loaded at 01E50000h - 01E7A000h
foo_ui_std   loaded at 01EA0000h - 01F74000h
foo_uie_quicksearch   loaded at 01FA0000h - 01FE6000h
foo_utils loaded at 02010000h - 02054000h
foo_skip loaded at 02080000h - 0209D000h
foo_uie_lyrics   loaded at 020C0000h - 0211D000h
WININET   loaded at 43D00000h - 43DD0000h
Normaliz loaded at 02130000h - 02139000h
iertutil loaded at 43A80000h - 43AC5000h
foo_menu_addons   loaded at 02360000h - 0239C000h
foo_runcmd   loaded at 023C0000h - 023F4000h
foo_uie_panel_splitter   loaded at 02420000h - 0246F000h
foo_input_std loaded at 02490000h - 025CF000h
foo_lastfm_radio loaded at 025F0000h - 02638000h
foo_uie_trackinfo_mod loaded at 02660000h - 026B6000h
MSVCP80   loaded at 7C420000h - 7C4A7000h
MSVCR80   loaded at 78130000h - 781CB000h
foo_uie_elplaylist   loaded at 026E0000h - 02749000h
foo_ui_columns   loaded at 02770000h - 028AB000h
foo_converter loaded at 028D0000h - 0293C000h
foo_vis_shpeck   loaded at 02960000h - 0299E000h
mscms loaded at 73A90000h - 73AA5000h
icm32 loaded at 60CE0000h - 60D21000h
atioglxx loaded at 03BA0000h - 0471A000h
VERSION   loaded at 77BA0000h - 77BA8000h
WS2_32   loaded at 71A00000h - 71A17000h
WS2HELP   loaded at 719F0000h - 719F8000h
SXS   loaded at 75DF0000h - 75E9F000h
CLBCATQ   loaded at 76F70000h - 76FEF000h
COMRes   loaded at 76FF0000h - 770AB000h
jscript   loaded at 75BB0000h - 75C2D000h
xpsp2res loaded at 08650000h - 08C26000h
imagehlp loaded at 76C30000h - 76C58000h
DBGHELP   loaded at 59B80000h - 59C21000h

Stack dump analysis:
Address: 04096CEFh, location: "atioglxx", loaded at 03BA0000h - 0471A000h
Symbol: "atiPPHSN" (+004D231Fh)
Address: 7C960202h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+0000015Eh)
Address: 7C9600A4h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+00000000h)
Address: 7C95E900h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "strchr" (+00000113h)
Address: 7C960208h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+00000164h)
Address: 7C961066h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "wcsncpy" (+00000B07h)
Address: 7C9601BBh, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+00000117h)
Address: 7C9600A4h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+00000000h)
Address: 04094F2Bh, location: "atioglxx", loaded at 03BA0000h - 0471A000h
Symbol: "atiPPHSN" (+004D055Bh)
Address: 7C960202h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+0000015Eh)
Address: 7C960202h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+0000015Eh)
Address: 7C95E900h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "strchr" (+00000113h)
Address: 7C960202h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+0000015Eh)
Address: 7C96017Bh, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+000000D7h)
Address: 7C9601BBh, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+00000117h)
Address: 7C960202h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+0000015Eh)
Address: 7C960208h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+00000164h)
Address: 7C960202h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+0000015Eh)
Address: 7C96017Bh, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlAllocateHeap" (+000000D7h)
Address: 04052E26h, location: "atioglxx", loaded at 03BA0000h - 0471A000h
Symbol: "atiPPHSN" (+0048E456h)
Address: 040568BBh, location: "atioglxx", loaded at 03BA0000h - 0471A000h
Symbol: "atiPPHSN" (+00491EEBh)
Address: 040567F6h, location: "atioglxx", loaded at 03BA0000h - 0471A000h
Symbol: "atiPPHSN" (+00491E26h)
Address: 04091EB6h, location: "atioglxx", loaded at 03BA0000h - 0471A000h
Symbol: "atiPPHSN" (+004CD4E6h)
Address: 04050F1Fh, location: "atioglxx", loaded at 03BA0000h - 0471A000h
Symbol: "atiPPHSN" (+0048C54Fh)
Address: 03C1C233h, location: "atioglxx", loaded at 03BA0000h - 0471A000h
Symbol: "atiPPHSN" (+00057863h)
Address: 027F0000h, location: "foo_ui_columns", loaded at 02770000h - 028AB000h
Address: 03D058E0h, location: "atioglxx", loaded at 03BA0000h - 0471A000h
Symbol: "atiPPHSN" (+00140F10h)
Address: 03EBE375h, location: "atioglxx", loaded at 03BA0000h - 0471A000h
Symbol: "atiPPHSN" (+002F99A5h)
Address: 0123FE5Dh, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 012325E5h, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 01232464h, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 01010000h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 7C95E900h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "strchr" (+00000113h)
Address: 7C960040h, location: "ntdll", loaded at 7C950000h - 7C9F8000h
Symbol: "RtlFreeHeap" (+00000133h)
Address: 01265788h, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 0125356Ah, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 0127F958h, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 0125704Fh, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 01231DF9h, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 012537FBh, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 012552B0h, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 012538A0h, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 7C80B713h, location: "kernel32", loaded at 7C800000h - 7C94D000h
Symbol: "GetModuleFileNameA" (+000001B4h)
Address: 7C839AC0h, location: "kernel32", loaded at 7C800000h - 7C94D000h
Symbol: "ValidateLocale" (+000002B0h)
Address: 7C80B720h, location: "kernel32", loaded at 7C800000h - 7C94D000h
Symbol: "GetModuleFileNameA" (+000001C1h)
Address: 01253821h, location: "foo_chronflow", loaded at 01230000h - 01291000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h
Address: 01000004h, location: "foo_uie_graphical_browser", loaded at 00FB0000h - 01044000h

Version info:
foobar2000 v0.9.6.2
UNICODE
Windows 5.1


Additional info:
Default User Interface 0.9.5  (foo_ui_std)
WSH Panel (uie) 0.7.2  (foo_uie_wsh_panel)
Run Command 1.0 beta 3  (foo_runcmd)
Album List 4.3  (foo_albumlist)
Shpeck - Winamp vis plugins wrapper 0.3.0  (foo_vis_shpeck)
Extended Variables 0.3.1  (foo_exvar)
Chronial's Coverflow 0.3.0  (foo_chronflow)
ReplayGain Scanner 2.0.8  (foo_rgscan)
Channel Spectrum panel 0.17.2  (foo_uie_vis_channel_spectrum)
Panel Stack Splitter 0.3.6.2(alpha)  (foo_uie_panel_splitter)
Last.fm Radio 0.5.4  (foo_lastfm_radio)
Playback Statistics 2.1.6  (foo_playcount)
Run services 0.3.5  (foo_run)
Converter 1.2  (foo_converter)
Standard Input Array 1.0  (foo_input_std)
Lyric Show Panel 0.3.3.9 [Dec 12 2008 - 17:39:01]  (foo_uie_lyrics)
Quick Search Toolbar 2.8l  (foo_uie_quicksearch)
Standard DSP Array 1.0  (foo_dsp_std)
Album list panel 0.2.2  (foo_uie_albumlist)
ELPlaylist 0.6.4.2(beta)  (foo_uie_elplaylist)
Playback Statistics Custom 1.4.3  (foo_playback_custom)
Graphical Browser rev015  (foo_uie_graphical_browser)
CD Audio Decoder 2.1.4  (foo_cdda)
Menu Addons 0.4.1 (SSE)  (foo_menu_addons)
Columns UI 0.3.6.5  (foo_ui_columns)
Playlist Tools 0.6.2 beta 6  (foo_utils)
Skip Track 0.4  (foo_skip)
foobar2000 core 0.9.6.2  (Core)
Track info panel mod 0.8.0 beta [Jan  5 2007 - 13:36:12]  (foo_uie_trackinfo_mod)

[!--sizeo:1--][span style=\"font-size:8pt;line-height:100%\"][!--/sizeo--]Moderation: Codeboxed.[/size]

Kameleon by Br3tt

Reply #115
A crash in ATI OpenGL driver, used by Chronflow. Make sure you have installed the latest drivers for your graphics card.
Full-quoting makes you scroll past the same junk over and over.

Kameleon by Br3tt

Reply #116
I'm using Vista
I can't use mouse to select Albums in cover flow

Kameleon by Br3tt

Reply #117
Any word on whether the height of the coverflow/playlist/album browser can be changed and/or be kept fixed?

As shown in the screenshot below, the height of this pane is 40% of the skin, and only about 175px is really needed to use coverflow/playlist/album browser.


I would have to agree with this, the most playlists I have at once is about five, and there's a lot of extra space. It would be awesome if you could add an option to change the height of the playlist.
Thanks Brett

Kameleon by Br3tt

Reply #118
For example. if an artist name contains a / , let's say Ac/dc then i use this variable to search for the cover

How can I convert my ibiza/curacao line to work with kameleon?
Code: [Select]
C:\Program Files\foobar2000\covers\$replace(%artist%,/,,?,,) - %album%.jpg


it worked in Curaçao, but then again, extended variable wasn't in use then...... can i in some way, get this to work in kameleon


again br3tt, i was sceptical at kameleon at first, but now i loooove it. your finest creation ever

Kameleon by Br3tt

Reply #119
Very nice config Br3tt, thank you.

It only takes 10 minutes to config Kameleon for my system, wow.


But I have a question for my understanding.
It seems that the bg pictures in Kameleon look sharper than in Curacao. Is there a different way in drawing or do I need new glasses?

Kameleon by Br3tt

Reply #120
4. Is there a way to make Kameleon show the last playlist used? I could do this in Curacao, but when I open foobar with Kameleon, it goes to my default library playlist.


file -> startup playlist -> last playlist

(at least it works with my foo:))


I searched and searched and could not find this menu sequence.
Of course I can find "File" But when I click it I find no such option as "Startup Playlist. Where is it exactly? 

Fantastic config Falstaff!



Kameleon by Br3tt

Reply #121
Thank You!!!

Kameleon by Br3tt

Reply #122
4. Is there a way to make Kameleon show the last playlist used? I could do this in Curacao, but when I open foobar with Kameleon, it goes to my default library playlist.


file -> startup playlist -> last playlist

(at least it works with my foo:))


I searched and searched and could not find this menu sequence.
Of course I can find "File" But when I click it I find no such option as "Startup Playlist. Where is it exactly? 

Fantastic config Falstaff!



but i don't know what component is responsible for that "startup playlist" thingy


Thanks a lot!

Kameleon by Br3tt

Reply #123
A crash in ATI OpenGL driver, used by Chronflow. Make sure you have installed the latest drivers for your graphics card.


installed the latest driver today, still get the same problem.
important to notice that it works fine when i add some music folders one by one. but when i add all my main music dir, i get this crash, what can it be?

Kameleon by Br3tt

Reply #124
Hey Br3tt  Congratulations on releasing the new config, it's good 
Thanks for the collapsible track infos
but I'm stuck with extended variables, I can't get my artist pics to show. How can I convert my ibiza/curacao line
Code: [Select]
$puts(artist.path,$replace(%path%,$directory(%path%,1)\%filename_ext%,)artist.jpg)
into something working with kameleon?
tia 

oh and... Is there any way to copy different parts of code between your configs? We can copy panels but pasting them into another configuration sucks  Would like to have left part of Kameleon combined with the right part of Curacao