Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,741,351 Members 41,409 Now Online
XDA Developers Android and Mobile Development Forum

[App][Dec 8 2010][V5] Avian Play - A new kind of music player for WM

Tip us?
 
thx1200
Old
(Last edited by thx1200; 13th December 2010 at 03:48 PM.)
#1  
thx1200's Avatar
Recognized Developer - OP
Thanks Meter 44
Posts: 870
Join Date: Apr 2006
Location: Raleigh, North Carolina
Default [App][Dec 8 2010][V5] Avian Play - A new kind of music player for WM

Overview
Avian Play is a new kind of music player for Windows Mobile. Avian Play provides an intuitive, unique, and user customizable user interface, inspired by modern mobile user interface designs and tweaked for a powerful music player, and an audio engine based on the most accurate and blazingly fast portable audio engine available on any platform - the MAD MP3 decoder. Avian Play gives you three completely separate playback control surfaces, depending on the type of file you are playing. You get a separate control surface for music, podcasts, and internet radio. The controls you need for each of those separate audio tasks is not the same, so why should the same buttons be visible, wasting screen real estate? Another unique feature not found on any portable media player I know of is how Avian Play treats online radio stations. A playlist for a single stream is treated as a single unit, remembering the backup servers to try if the server you are listening to goes down. This information is cached and refreshed periodically automatically, so you have to update your stream lists less frequently. To top it all off, an included plugin for Avian Play supports the free SHOUTcast (TM) online radio service, and has an open Library plugin API so that other online services (and anything else you might need in the library) can be added easily. The Avian Play library is one of the other shining features of Avian Play. It is a robust SQL CE database core, with user customizable queries. When you are in any list of query results, you can immediately filter the list by simply typing something in your SIP or physical keyboard. No lag instant search!

If you like a graphically robust user interface, such as that which is used on iPhone, Zune, any many other players, Avian Play may not be for you. The design goals of Avian Play is maximum power and capability, with a robust library, customizable queries, and many other deep features yet to come. Interfaces such as sliding/flipping album covers is probably not going to ever be included. :)

Avian Play has a lot of features, and I know I'm forgetting a lot. If somebody wants to help me document this app, I would be grateful. I'm terrible at documentation. Maybe a series of tutorial YouTubes? :D

Tip Jar
Like this app? Want more like it or quicker updates? Tip a few bucks (or Euros or Pounds or whatever) or two to help the author out! Click here to make a safe donation via PayPal.

Development
Development is hosted at CodePlex. You can download the source code and more. :) http://avianplay.codeplex.com/

Licensing
Avian Play is licensed under GPL v2. However, Avian Play uses many different libraries which may have different licenses. See the included ReadMe.txt file for more information.

Features
- Intuitive, finger-friendly user interface, with seperate control surfaces for each audio file type (music, podcasts, internet radio) with multiple layout scenes per surface
- Advanced SQL library of music files on your device with customizable queries
- Tag reading/parsing and tag derived information from paths (\Folder\Artist\Album\Track.mp3)
- MAD audio codecs
- Large fonts and titling and large buttons for "car friendliness"
- Playlist editor
- Streams can contain multiple alternate URLs in a single entry
- Immediate list filtering/searching
- Customizable skins and languages
- It's FAST
- Much more!

File Support
Audio: MP3, OGG, Flac, WMA, WAV
Playlist: M3U, PLS, AVPL (this is custom for Avian Play, see posts below)

Future
This project was started a year ago before the announcement of Windows Phone 7 and I'm glad I have seen it through to completion. Although Windows Mobile is a platform on the brink of death, I consider this my magnum opus for Windows Mobile and a fitting tribute to the capabilities of the underrated OS. I will continue to develop on this app as long as I have a Windows Mobile phone... Probably another year or so. I'm waiting for either WP7 to open up, or maybe making the jump to Android. Maybe I'll port it to both if it's popular. Avian Play was designed in a highly modular fashion. I did this intentionally back when everybody thought WP7 would still be based on the same core as WP6, so I could replace the UI components or audio engine easily. If anybody is interested in working an Android port right now, please PM me and let's talk.

Update: I've started porting Avian Play to Android. It's going to be a long process, as Avian Play is VB.Net on Compact Framework and Android uses a custom implementation of Java (it's not a one-to-one conversion; although translating VB.Net to C# first is speeding things up). After surveying the mobile landscape for the past few months, I'm just not all that excited about WP7, whereas Android is very "open" and flexible and the latest handsets make me go "ooooh" so I think that's where I will be heading. I'll reserve my final judgement for February when the "big update" for WP7 comes out that will supposedly relax a lot of the restrictions and open the platform up more.

Album Art
I know somebody is going to ask. How do I get to see Album Art?! Well, in this first release, album art is only viewable as thumbnails in the library. In the future, a new plugin architecture for the playback label/panel will provide customizable playback information, such as album art.

Gapless Playback?
Unfortunately, not yet... I think it should be possible, but I don't know C++ well enough to hack the MAD code. :( Any volunteers???

Requirements
- Windows Phone (Windows Mobile) 6.0 or newer
- .Net Compact Framework 3.5
- SQL CE 3.5 (this is included in the cab installer)
- ALL resolutions supported! For non-192 DPI devices (aka, non-VGA), skin bitmaps are automatically scaled to resolution

Installation
The compact framework and SQL CE are required for Avian Play. If you do not have SQL CE installed, the installer will install it for you. However, if you have an older version of SQL CE (such as 2.0), the installer may not install SQL CE 3.5. So if Avian Play doesn't work after installation, this is probably the issue. If this happens, download and install the SQL CE 3.5 redistributable attached to this message. In the future, I hope to have a more intelligent installer that will detect older versions.

After installing Avian Play and running it for the first time, please allow 10-15 minutes for all supported audio files to be discovered and entered into the Library. From then on, Avian Play will automatically detect changes in the library contents until you close Avian Play. Each subsequent time you run Avian Play, it will scan for new files again, but it will be much quicker because it is only looking for changes.

Releases
V5: Here
V4: Here
V3: Here
V2: Here
V1: Initial release
New releases will come in small iterative steps, rather than major versions with bugfix sub-releases. Don't feel like you have to update at every version if this release schedule is too fast for you. :)

(scroll down to third post for more screenshots)
Attached Thumbnails
Click image for larger version

Name:	AP1.png
Views:	3157
Size:	69.9 KB
ID:	426080   Click image for larger version

Name:	AP2.jpg
Views:	2054
Size:	33.1 KB
ID:	426081   Click image for larger version

Name:	AP3.png
Views:	1881
Size:	76.8 KB
ID:	426082   Click image for larger version

Name:	AP4.png
Views:	1611
Size:	75.0 KB
ID:	426083   Click image for larger version

Name:	AP5.png
Views:	1287
Size:	42.5 KB
ID:	426084  

Attached Files
File Type: cab sqlce.ppc.wce5.armv4i.CAB - [Click for QR Code] (745.8 KB, 1794 views)
File Type: cab NETCFv35.wm.armv4i.cab - [Click for QR Code] (2.58 MB, 608 views)
File Type: cab AvianPlay.CAB - [Click for QR Code] (2.02 MB, 1419 views)
Avian Waves aka thx1200
http://www.avianwaves.com

Samsung Galaxy S4 / Sprint

Android Apps: Coming soon!
Legacy Windows Mobile Apps (no longer supported): Avian Play / Mute4 / ReRemind / BattLineSvc / ZoomBarPlus / PlaySound / TouchFlo Detacher / Mobile Shell 3 Toggler / iContact AE
The Following 2 Users Say Thank You to thx1200 For This Useful Post: [ Click to Expand ]
 
thx1200
Old
(Last edited by thx1200; 10th December 2010 at 02:26 PM.)
#2  
thx1200's Avatar
Recognized Developer - OP
Thanks Meter 44
Posts: 870
Join Date: Apr 2006
Location: Raleigh, North Carolina
Localization
Spanish: http://forum.xda-developers.com/show...8&postcount=53

Avian Play is ready to be localized to your native language! I need translators though. In the "Languages" folder under the application folder is where each language will be stored. Avian Play is structured such that all files in the language folder will be loaded for that language. This allows plugins to put their own language files in those folders, without interfering with Avian Play. All language strings are loaded into a single dictionary. To avoid collisions, plugin developers should prefix all their language strings (see shoutcast.ini for example). If a language string is not found in your language (maybe a new plugin or new features have new strings that are not yet translated) it will always default back to the English translation. So the "English" folder is the default language.

Skinning
Avian Play was designed so that the user can customize the layout of the application. Eventually, Avian Play will be fully widgetized (although maybe not on the WM platform). For the time being, the title information is on top, the control surface or list is in the middle, and the menus and tabs are at the bottom. Skin designers can, however, give Avian Play a brand new look by developing new images and editing a skin.ini file. To make a new skin, start in the Skins folder, and copy the contents of Default. Then edit the images and edit the colors in skin.ini to suit your taste. Please upload the results. Users can then extract the skin into your own custom named folder and select the skin from within Avian Play. Get creative! My skin isn't that hot. ;)

AVPL
I know nobody really wants yet another playlist format, but I had to develop one because no current playlist format supports multiple URL sources for a single stream, despite that being extremely common. To support all of Avian Play's playlist functionality, you should use AVPL formatted files. You can create AVPL files from within the internal playlist editor, or by hand, as it is just a simple INI file. In the future, the AVPL will also support direct queries on the database to populate the list, but this is not supported yet. The intention is for this to be an open format, and I will post the schema later on so it can be used in other applications.

Database Schema
FileLibrary:
Code:
Select Code
Column Name         Type      Length Nullable Unique Description
Key                 int              No       Yes    Identity Column - Primary Key
AddedDate           datetime         No       No     Date/Time the file was added to the DB
Album               nvarchar  100    No       No     Album Name
AlbumArt            image            No       No     Album Art (scaled to approx 480x480)
AlbumArtist         nvarchar  100    Yes      No     Album Artist Name (for example, a DJ who made the compilation)
AlbumArtThumbnail   image            Yes      No     Thumbnail of Album Art (scaled to approx 64x64)
Artist              nvarchar  100    No       No     Artist Name (artist who performed this track)
Bitrate             int              No       No     Bitrate of media file ** Currently unused **
Comments            nvarchar  200    No       No     Extra comments in media file
Copyright           nvarchar  100    No       No     Copyright string
FileModifyDate      datetime         No       No     Date/Time the file was last modified
FilePath            nvarchar  260    No       Yes    Full path to media file
FileSize            int              No       No     Length of media file in bytes
Format              nvarchar  25     No       No     Format of media file (MP3, OGG, etc.)
Genre               nvarchar  50     No       No     Genre of media file
HasAlbumArt         bit              No       No     Does this file have album art included?
IsFavorite          bit              No       No     Is this file "favorited" by the user?
IsPodcast           bit              No       No     Is this file considered a podcast?
LastFoundDate       datetime         No       No     Date/Time the file was last found in the file system
LastPlayedDate      datetime         No       No     Date/Time the file was last played
LastPlayPosition    int              No       No     If position is tracked of the file, the last position (byte) where the file was paused
LengthSeconds       int              No       No     Length of file in seconds ** Currently unused **
MD5Hash             varbinary 128    Yes      No     MD5 hash of the file, if MD5 hashes are being tracked
NotFound            bit              No       No     Was the file not found when the last library scan ocurred?
Rating              tinyint          No       No     User rating of the file
SkipForMetaPlaylist bit              No       No     Should the file be skipped for embedded queries in AVPL playlists ** Currently unused **
Title               nvarchar  100    No       No     Title of the media file (song name)
TrackNumber         int              No       No     The track number, with respect to album track order
Year                int              No       No     The year the track was released
PlaylistLibrary:
Code:
Select Code
Column Name     Type     Length Nullable Unique Description
Key             int             No       Yes    Identity Column - Primary Key
ContainsFiles   bit             No       No     Does the playlist contain media files?
ContainsStreams bit             No       No     Does the playlist contain streams?
FileModifyDate  datetime        No       No     Date/Time the file was last modified
FilePath        nvarchar 260    No       Yes    Full path to playlist file
Format          nvarchar 25     No       No     Format of playlist file (M3U, AVPL, etc.)
IsFavorite      bit             No       No     Is this file "favorited" by the user?
LastFoundDate   datetime        No       No     Date/Time the file was last found in the file system
MD5Hash         binary   128    No       No     MD5 hash of the file, if MD5 hashes are being tracked
NotFound        bit             No       No     Was the file not found when the last library scan ocurred?
Title           nvarchar 50     No       No     Title of the playlist file (derived from filename, but AVPL may support)
Architecture
Some people might be interested in the architecture of Avian Play. So I will describe my approach here. Avian Play consists of two processes: AvianPlay.exe and APEngine.exe. AvianPlay.exe is a managed .Net Framework app written in VB.Net. It controls the bulk of your Avian Play experience. Everything from the control surface, library, podcast management, etc., is handled here. AvianPlay.exe spawns a second process, APEngine.exe which is the audio engine. APEngine is a wrapper for the MAD MP3 audio engine. This is the same engine used in MortPlayer, GSPlayer, and many others. It is a super high quality playback engine ported to many platforms. I chose it due to how easy it is to work with and the quality of playback.

Why two processes? I tried to P/Invoke MAD from a DLL, but due to memory management issues that led to freeze-ups, I realized I needed a larger barrier between the managed and unmanaged code. It took me a while, but I finally realized that I could avoid memory management issues by using two processes and using the registry for string-based IPC. The registry is very high performance on Windows Mobile, due to it being used for state notification via SHNAPI. So, by settings up registry callbacks on both processes, the application and audio engine are able to communicate successfully, with no memory management or other issues. The biggest disadvantage to this approach is that WM has a limit of 32 processes, and Avian Play will use two. I'm sorry, but there was no way around this! Attached to this thread is a Visio I made to map out how the application is structured.
Attached Thumbnails
Click image for larger version

Name:	AvianPlayArch.jpg
Views:	267
Size:	60.4 KB
ID:	426030  
Avian Waves aka thx1200
http://www.avianwaves.com

Samsung Galaxy S4 / Sprint

Android Apps: Coming soon!
Legacy Windows Mobile Apps (no longer supported): Avian Play / Mute4 / ReRemind / BattLineSvc / ZoomBarPlus / PlaySound / TouchFlo Detacher / Mobile Shell 3 Toggler / iContact AE
The Following User Says Thank You to thx1200 For This Useful Post: [ Click to Expand ]
 
thx1200
Old
(Last edited by thx1200; 15th November 2010 at 03:12 PM.)
#3  
thx1200's Avatar
Recognized Developer - OP
Thanks Meter 44
Posts: 870
Join Date: Apr 2006
Location: Raleigh, North Carolina
File Feature Matrix
Code:
Select Code
Audio File = The type of media file, such as MP3 and OGG.
Embedded Tags = Also known as "ID3" tags from the MP3 tag definition.  This contains information like Artist, Album, Title, Track Number, etc.
Playback Attributes = This is information usually only known when open for playback, such as track length (in time).

Audio File   Embedded Tags   Playback Attributes
MP3          Yes             No
Ogg          Yes             Coming Soon
Flac         Yes             Coming Soon
WMA          Yes             Coming Soon
WAV          No              No


Playlist File = The type of playlist file, such as M3U or AVPL
Files = Locations of files
URLs = URLs to internet media
Multiple URLs = URLs to internet media linked together as a single online radio station
Wildcards = Locations that point to folders or multiple files in one line
Recursive = Playlists that point to other playlists
Queries = Queries against the Avian Play database

Playlist File   Files   URLs   Multiple URLs   Wildcards   Recursive   Queries
AVPL            Yes     Yes    Yes             No          No          Coming Soon
M3U             Yes     Yes    No              No          No          No
PLS             Yes     Yes    No              No          No          No
Configuration
Avian Play's configuration is completely stored in INI files under the "INI" folder under the installation folder. In the future, you will be able to configure nearly everything from within the application, but these early versions are missing some configuration capabilities without manual editing.

Settings.INI
This is the main configuration file. Most of these settings are configurable from within Avian Play, but there are a few that are not. First, you can't edit the Avian Play database path. This is intentional because it's a bit advanced to move that around. But if you want to move the database file, you can do so and then edit the DatabasePath option under General. Second, the TagsFromPathRegEx option describes the regular expression used to derive tag information from the path. This is RegEx Pattern for Tags from Path in the application. Although you can edit it from within AvianPlay, it probably isn't optimal, since you might want to tweak the pattern from your PC where you can use an editor with RegEx capabilities.

Controls.INI
This file describes the control surface layout for the three control surfaces (Music, Podcasts, and Radio). It's a bit cryptic because it's designed to be configured and ready by the app, but the control surface editor is not yet ready. :) So if you want to change the control surfaces, you have to edit this file for now. The file starts under the [Main] section. Here there are the three control surfaces (0=music, 1=podcast, 2=radio). The C#L (Control Surface Length) tells Avian Play how much scenes are in each control surface. Minimum is 1. Then there are various sections, in the format of CXSY, where X=surface and Y=scene. So, C0S1 is the music surface and second scene (count starts at 0). Under that, you will see "SL" (Scene Length) which tells Avian Play how many rows the scene has (starting at bottom, going up). There is also R#L (Row Length) which tells Avian Play how many controls per row (1-4). Then you have RXBY, where X=row number (from bottom) and Y=Button (from left). Note that a button is any type fo control in Avian Play parlance, including track slider. The list of controls can be found at the bottom of this post. This is just the initial list and will grow as new features are added.

Events.INI
Avian Play uses events to allow you to execute commands based on occurances. The events currently supported are: OnApplicationStart, OnApplicationEnd, OnPhoneInUseStart, OnPhoneInUseEnd, and then keyboard/SIP events, which are Key_XX, where "XX" is the hex code of the key being pressed. ActiveOnList is a boolean that determines whether the action happens when a list (library, now playing, etc.) is active. Basically, some commands you don't want to work when the list is active. An example is that Avian Play allows lists to be filtered simply by typing. But if you remap "K" to play/stop, you can never use "K" to filter a list. So you would set ActiveOnList to false, in that case. AllowRepeat indicates whether a keypress can be repeated by holding it down. Action# are the steps of the script. The script itself is a super simple crappy thing I made up on the spot. If somebody knows of a script language I can easily include to replace this, that would be awesome. It has to be able to be plugged in easily and should be managed code.

Library.INI
This file defines the Avian Play Library's query results. Execution starts at the MAIN section, then jumps to the next sections based on user input. Most of the options describe the query used to retrieve data from the database. But there are other ways to populate a library list. For example, by using an external plugin. If you want to develop an external plugin, see the MemorizedSong plugin source code. I can't reveal the code for the ShoutCast plugin due to licensing restrictions with ShoutCast. You can also create a section that populates the list directly from a AVPL playlist file.

Podcasts.INI
Avian Play can manage podcast subscriptions and this is where you define your subscriptions. Again, this was designed to be edited by the application, so it's not exactly friendly, but it works well in my tests. Under Main section you set the next index to use to distinguish the subscriptions in the database. Under each SubscriptionX section, you use "Index" to differentiate each entry. Note that the title of the section does NOT differentiate the subscriptions. This is intentional. The rest of the sections are described in the file itself.

RegEx.INI
Online streams present information to the user, such as artist and title, in a single string. Avian Play allows you to use regular expressions to derive this pseudo-tag information to format it on the display easier. Many online radio stations seem to like to include superflous garbage surrounding the title information you care about. With RegEx, it's easy to exclude this crap! A few stations I listen to are included in the default file. Each entry has a "Station" tag which is the actual title of the station (partial or full -- use "ExactMatch" to set this). If multiple matches occur, use Priority to determine which one has precedence (higher number overrides lower number). Then the "RegEx" line is the actual regular expression used to derive title information. Named captures <A> represents Artist and <T> represents Title. The "Default" section is just what it sounds like: the default regular expression used to parse the stations. It follows the format "Artist - Title" which seems to be most common.

Schema.INI
This is used by the settings editor to know the layout of the Settings.INI file. DO NOT EDIT THIS.

State.INI
This file is overwritten every time you exit Avian Play. It stores the last track and some other UI information. DO NOT EDIT THIS.

Control Codes
These are the control codes used in the Controls.INI and Events.INI. Each code corresponds to a logical control (play, pause, stop, next, etc.). Some codes have an argument, which is another integer. Some codes also represent "multi" buttons, where the button may change based on the playback state; An example would be the StartPauseStop button which changes what it does based on whether playback has started or not.
Code:
Select Code
NONE = 0               ' Do nothing
Stop = 1
Play = 2
Pause = 3
PreviousRewind = 5
NextForward = 6
SkipBack = 7           ' Argument, number of seconds
SkipAhead = 8          ' Argument, number of seconds
MemorizeSong = 9
OpenAudioFile = 10
OpenPlaylistFile = 11
JumpToEntry = 12       ' Argument: which playlist entry in the current list?  1..n
OpenURL = 13
VolToggle = 16         ' Argument, number of volume 'segments' (plus 1); Positive value increments; Negative value decrements. Example: 4 cycles through 0%, 25%, 50%, 75%, 100%, in that order
Close = 29             ' Close the currently open file or stream

ListUp = 201           ' Move up in the current list
ListDown = 202         ' Move Down in the current list
ListSelect = 203       ' Select the item on the list
ScenePrevious = 207    ' Go to previous scene in the collection
SceneNext = 208        ' Go to next scene in the collection

StopPlayPause = 401    ' Depending on playback state, stop, play, or pause
SelectStopPlayPause = 402  ' If in a list, select the list item, otherwise same as StopPlayPause

TrackPositionSlider = 601  ' The slider you can drag to jump around a loaded item
Attached Thumbnails
Click image for larger version

Name:	AP8.png
Views:	234
Size:	31.6 KB
ID:	426088   Click image for larger version

Name:	AP9.png
Views:	240
Size:	77.9 KB
ID:	426089   Click image for larger version

Name:	AP10.png
Views:	210
Size:	48.4 KB
ID:	426090   Click image for larger version

Name:	AP11.jpg
Views:	181
Size:	38.2 KB
ID:	426091   Click image for larger version

Name:	AP12.jpg
Views:	172
Size:	34.5 KB
ID:	426092  

Click image for larger version

Name:	AP13.png
Views:	214
Size:	46.9 KB
ID:	426093   Click image for larger version

Name:	AP14.png
Views:	193
Size:	44.6 KB
ID:	426094   Click image for larger version

Name:	AP7.jpg
Views:	163
Size:	46.2 KB
ID:	426705  
Avian Waves aka thx1200
http://www.avianwaves.com

Samsung Galaxy S4 / Sprint

Android Apps: Coming soon!
Legacy Windows Mobile Apps (no longer supported): Avian Play / Mute4 / ReRemind / BattLineSvc / ZoomBarPlus / PlaySound / TouchFlo Detacher / Mobile Shell 3 Toggler / iContact AE
The Following User Says Thank You to thx1200 For This Useful Post: [ Click to Expand ]
 
thx1200
Old
(Last edited by thx1200; 15th November 2010 at 03:00 PM.)
#4  
thx1200's Avatar
Recognized Developer - OP
Thanks Meter 44
Posts: 870
Join Date: Apr 2006
Location: Raleigh, North Carolina
Tips
- Quickly double tap the song title area to toggle between the large multiline and small single line display modes.
- Press and hold some buttons for additional functionality: hold the volume toggle button to show the full screen volume bar, hold the PlayPauseStop button to stop.
- Don't want or need all three control surfaces (music, podcast, and internet radio)? Since V3, you can disable ones you don't want under Settings->Display

Frequently Asked Questions
None yet. :)
Avian Waves aka thx1200
http://www.avianwaves.com

Samsung Galaxy S4 / Sprint

Android Apps: Coming soon!
Legacy Windows Mobile Apps (no longer supported): Avian Play / Mute4 / ReRemind / BattLineSvc / ZoomBarPlus / PlaySound / TouchFlo Detacher / Mobile Shell 3 Toggler / iContact AE
The Following User Says Thank You to thx1200 For This Useful Post: [ Click to Expand ]
 
m.reza
Old
#5  
Junior Member
Thanks Meter 0
Posts: 10
Join Date: Jul 2009
Many Thanks thx1200. Tried it on hd2, miri Elegancia v5.0 Final WWE
on both internal memory and storage card, it says SQL CE 3.5 may not be installed. please install ....
but in the requirements you've mentioned the sql is included in the cab installer!
 
eversp01
Old
(Last edited by eversp01; 25th October 2010 at 09:15 PM.)
#6  
Member
Thanks Meter 1
Posts: 35
Join Date: Aug 2010
Location: Gent
Quote:
Originally Posted by m.reza View Post
... it says SQL CE 3.5 may not be installed. please install ....
same problem
 
Farmer Ted
Old
#7  
Senior Member
Thanks Meter 88
Posts: 2,371
Join Date: Nov 2008
This is a really nice app. I had the sqlce error as well. The problem is that the cab isn't installing the secondary sqlce cab, but it is being deleted from the Avian folder. I unpacked the cab and installed the sqlce cab on my own, and now the app loads. I don't know how the hell to use it yet, lol, but it's really good looking and has cool features. I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
Attached Files
File Type: cab sqlce.ppc.wce5.armv4i.CAB - [Click for QR Code] (745.8 KB, 207 views)
ROM: Retro ROM
Radio: 1.17.25.09
 
thx1200
Old
#8  
thx1200's Avatar
Recognized Developer - OP
Thanks Meter 44
Posts: 870
Join Date: Apr 2006
Location: Raleigh, North Carolina
Quote:
Originally Posted by Farmer Ted View Post
This is a really nice app. I had the sqlce error as well. The problem is that the cab isn't installing the secondary sqlce cab, but it is being deleted from the Avian folder. I unpacked the cab and installed the sqlce cab on my own, and now the app loads. I don't know how the hell to use it yet, lol, but it's really good looking and has cool features. I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
I think the problem is that your ROMs have an older SQL CE installed, but the installer isn't smart enough to detect this. I'll try to fix for a future version, but until then, I'm going to move your SQL CE cab to the top post. :)
Avian Waves aka thx1200
http://www.avianwaves.com

Samsung Galaxy S4 / Sprint

Android Apps: Coming soon!
Legacy Windows Mobile Apps (no longer supported): Avian Play / Mute4 / ReRemind / BattLineSvc / ZoomBarPlus / PlaySound / TouchFlo Detacher / Mobile Shell 3 Toggler / iContact AE
 
eversp01
Old
#9  
Member
Thanks Meter 1
Posts: 35
Join Date: Aug 2010
Location: Gent
Quote:
Originally Posted by Farmer Ted View Post
I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
Thanks! Installed this cab and now it's working fine.

Great app.
 
nosedive
Old
#10  
nosedive's Avatar
Senior Member
Thanks Meter 68
Posts: 319
Join Date: Jul 2008
Location: Vienna, AUT
Quote:
Originally Posted by Farmer Ted View Post
This is a really nice app. I had the sqlce error as well. The problem is that the cab isn't installing the secondary sqlce cab, but it is being deleted from the Avian folder. I unpacked the cab and installed the sqlce cab on my own, and now the app loads. I don't know how the hell to use it yet, lol, but it's really good looking and has cool features. I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
i can also confirm, after installing the cab the app loads.

cu,
nosedive

Tags
media, mp3, music, ogg, player
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes