Fedora 15, 16 pulseaudio m-audio audiophile 2496

Same old trick to this one

1. Edit the pulse rules

sudo gedit /lib/udev/rules.d/90-pulseaudio.rules

add the following line

SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1412", ATTRS{device}=="0x1712", ATTRS{subsystem_vendor}=="0x1412", 
ATTRS{subsystem_device}=="0xd634", ENV{PULSE_PROFILE_SET}="m_audio-audiophile-2496.conf"

2. Create the following file

sudo gedit /usr/share/pulseaudio/alsa-mixer/profile-sets/m_audio-audiophile-2496.conf
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the
# License, or (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

; M-Audio Delta Audiophile 2496
;
; This card, based on the Via ICE1712 chipset, has two stereo audio channels
; (1 in and 1 out) and a separate S/PDIF digital stereo channel. Like with
; all ICE1712-based cards, this is exposed by ALSA as a single 10-channel
; device with some of the channels not connected.
;
; See default.conf for an explanation on the directives used here.

[General]
auto-profiles = no

[Mapping analog-stereo-in]
description = Analog Stereo Input
device-strings = hw:%f,0
channel-map = front-left,front-right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9
direction = input

[Mapping analog-stereo-out]
description = Analog Stereo Output
device-strings = hw:%f,0
channel-map = front-left,front-right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7
direction = output

[Mapping analog-digital-stereo-out]
description = Analog/Digital Stereo Output
device-strings = hw:%f,0
channel-map = front-left,front-right,aux0,aux1,aux2,aux3,aux4,aux5,front-left,front-right
direction = output

[Mapping digital-stereo-out]
description = Digital Stereo Output
device-strings = hw:%f,0
channel-map = aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,front-left,front-right
direction = output

[Mapping digital-stereo-in]
description = Digital Stereo Input
device-strings = hw:%f,0
channel-map = front-left,front-right,front-left,front-right,front-left,front-right,front-left,front-right,front-left,front-right,front-left,front-right
direction = input

[Mapping digital-stereo]
description = Digital Stereo Input/Output
#device-strings = hw:%f,1
device-strings = iec958:%f
channel-map = left,right
direction = any

[Profile output:stereo]
description = Analog Stereo Output
output-mappings = analog-stereo-out
input-mappings =
priority = 80
skip-probe = yes

[Profile output:stereo-da+input:stereo-analog]
description = Analog Stereo Input/Output
output-mappings = analog-stereo-out
input-mappings = analog-stereo-in
priority = 100
skip-probe = yes

[Profile output:stereo-da+input:stereo-analog]
description = Analog Stereo Input/Output, Digital Stereo Output
output-mappings = analog-digital-stereo-out
input-mappings = analog-stereo-in
priority = 90
skip-probe = yes

[Profile output:spdif]
description = Digital Stereo Output (Analog Disabled)
output-mappings = digital-stereo-out
input-mappings =
priority = 60
skip-probe = yes

[Profile output:spdif+input:spdif]
description = Digital Stereo Input/Output (Analog Disabled)
output-mappings = digital-stereo-out
input-mappings = digital-stereo-in
priority = 70
skip-probe = yes

Don’t forget to turn up the device DAC 0,1

optionally, if this setting goes after reboot, make a startup script and put the following into it

amixer -c 0 sset  'DAC',0 100% 100%
amixer -c 0 sset  'DAC',1 100% 100%

Note* -c 0 might change depending on your setup!


Fedora 15 repositories

So i upgraded to Fedora 15, i must say its going to take a while to get
used it without compiz and general gnome 3 stuff.

First thing i noticed was as its beta there are no official repos.
in the main trunk, you have to use the development ones.

first off move all the files in /etc/yum.repos.d/ *.bak
( we will want to restore these later, when the proper repos come up! )

next

make a new file fedora.repo

vi /etc/yum.repos.d/fedora.repo

Add the following

[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
baseurl=http://fedora.mirror.garr.it/mirrors/fedora/linux/development/15/x86_64/os/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
#metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

[fedora-debuginfo]
name=Fedora $releasever - $basearch - Debug
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/debug/
baseurl=http://fedora.mirror.garr.it/mirrors/fedora/linux/development/15/x86_64/debug/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch
enabled=0
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

[fedora-source]
name=Fedora $releasever - Source
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/source/SRPMS/
baseurl=http://fedora.mirror.garr.it/mirrors/fedora/linux/development/15/source/SRPMS/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch
enabled=0
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

And work away as normal πŸ™‚

yum clean all
yum update

Osama Bin Laden original ( Gary Meyil 2004 )

Drop a mail to me if you interested in buying πŸ˜‰


Android AppWidget TableLayout

As most developers have found out, appwidgets break the normal rules when it comes to widget development.
Due to the abstract class ( appwidgetProvider ) and the updating through RemoteViews

You’re quite limited in the use of the different layout controls that are available.
namely :

  • FrameLayout
  • LinearLayout
  • RelativeLayout

So how do we get a table layout, that automatically expands or fills the available space?

The answer is clever use of of the weight attributes of linearLayout and the children components.
Here is an example of a timetable.

9 – 6 / Mon – friday.

Note* i have an image up the top right, you may wont to replace this with something else!

Scroll to the end for an example on how to loop through the cells

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="fill_parent"
	android:padding="0px" android:orientation="vertical">
	
	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
		android:orientation="horizontal" android:layout_width="fill_parent"
		android:layout_margin="0px" android:layout_height="wrap_content">

		<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
			android:src="@drawable/ul"
			android:layout_width="fill_parent"
  			android:layout_height="wrap_content"
  			android:layout_weight="1"
  			android:layout_marginTop="6dp"
  			android:adjustViewBounds="true"
  			android:maxHeight="30px"/>

		<TextView xmlns:android="http://schemas.android.com/apk/res/android"
			android:layout_width="fill_parent" android:layout_height="wrap_content"
			android:layout_weight="1" android:text="Mon" android:gravity="center"
		/>

		<TextView xmlns:android="http://schemas.android.com/apk/res/android"
			android:layout_width="fill_parent" android:layout_height="wrap_content"
			android:layout_weight="1" android:text="Tue" android:gravity="center"
		/>

		<TextView xmlns:android="http://schemas.android.com/apk/res/android"
			android:layout_width="fill_parent" android:layout_height="wrap_content"
			android:layout_weight="1" android:text="Wed" android:gravity="center"
		/>

		<TextView xmlns:android="http://schemas.android.com/apk/res/android"
			android:layout_width="fill_parent" android:layout_height="wrap_content"
			android:layout_weight="1" android:text="Thu" android:gravity="center"
		/>

		<TextView xmlns:android="http://schemas.android.com/apk/res/android"
			android:layout_width="fill_parent" android:layout_height="wrap_content"
			android:layout_weight="1" android:text="Fri" android:gravity="center"
		/>

	</LinearLayout>

	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
		android:orientation="vertical" android:layout_width="fill_parent"
		android:layout_height="fill_parent"
		android:layout_margin="0px" android:layout_weight="1.0" android:id="@+id/mainTable">	

		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			android:orientation="horizontal" android:layout_width="match_parent"
			android:layout_height="wrap_content" android:layout_weight="1.0">

			<TextView xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:gravity="center" android:layout_weight="1" android:text="09:00" />

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/mon9"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/ue9"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/wed9"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/hu9"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/fri9"/>

		</LinearLayout>

		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			android:orientation="horizontal" android:layout_width="match_parent"
			android:layout_height="wrap_content" android:layout_weight="1.0">

			<TextView xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:gravity="center" android:layout_weight="1" android:text="10:00" />

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/mon10"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/ue10"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/wed10"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/hu10"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/fri10"/>

		</LinearLayout>

		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			android:orientation="horizontal" android:layout_width="match_parent"
			android:layout_height="wrap_content" android:layout_weight="1.0">

			<TextView xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:gravity="center" android:layout_weight="1" android:text="11:00" />

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/mon11"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/ue11"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/wed11"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/hu11"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1"android:id="@+id/fri11"/>

		</LinearLayout>

		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			android:orientation="horizontal" android:layout_width="match_parent"
			android:layout_height="wrap_content" android:layout_weight="1.0">

			<TextView xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:gravity="center" android:layout_weight="1" android:text="12:00" />

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/mon12"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/ue12"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/wed12"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/hu12"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/fri12"/>

		</LinearLayout>

		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			android:orientation="horizontal" android:layout_width="match_parent"
			android:layout_height="wrap_content" android:layout_weight="1.0">

			<TextView xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:gravity="center" android:layout_weight="1" android:text="13:00" />

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/mon13"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/ue13"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/wed13"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/hu13"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/fri13"/>

		</LinearLayout>

		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			android:orientation="horizontal" android:layout_width="match_parent"
			android:layout_height="wrap_content" android:layout_weight="1.0">

			<TextView xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:gravity="center" android:layout_weight="1" android:text="14:00" />

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/mon14"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/ue14"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/wed14"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/hu14"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/fri14"/>

		</LinearLayout>

		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			android:orientation="horizontal" android:layout_width="match_parent"
			android:layout_height="wrap_content" android:layout_weight="1.0">

			<TextView xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:gravity="center" android:layout_weight="1" android:text="15:00" />

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/mon15"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/ue15"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/wed15"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/hu15"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/fri15"/>

		</LinearLayout>

		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			android:orientation="horizontal" android:layout_width="match_parent"
			android:layout_height="wrap_content" android:layout_weight="1.0">

			<TextView xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:gravity="center" android:layout_weight="1" android:text="16:00" />

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/mon16"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/thu17"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/wed16"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/hu16"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/fri16"/>

		</LinearLayout>

		<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			android:orientation="horizontal" android:layout_width="match_parent"
			android:layout_height="wrap_content" android:layout_weight="1.0">

			<TextView xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:gravity="center" android:layout_weight="1" android:text="17:00" />

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/mon17"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/ue17"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/wed17"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/thu17"/>

			<Button xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="fill_parent" android:layout_height="fill_parent"
				android:layout_weight="1" android:id="@+id/fri17"/>

		</LinearLayout>

	</LinearLayout>

</LinearLayout>

And just in case your wondering how you can easily loop through them

RemoteViews views = new RemoteViews( context.getPackageName() , R.layout.widget );

for ( int i = 9 ; i < 18 ; i++ )
{
	try
	{
	        int monid = R.id.class.getField( "mon" + i ).getInt( 0 );
		views.setOnClickPendingIntent( monid , this.createOnClickPendingIntent( context ) );

		int tueid = R.id.class.getField( "tue" + i ).getInt( 0 );
		views.setOnClickPendingIntent( tueid , this.createOnClickPendingIntent( context ) );

		int wedid = R.id.class.getField( "wed" + i ).getInt( 0 );
		views.setOnClickPendingIntent( wedid , this.createOnClickPendingIntent( context ) );

		int thuid = R.id.class.getField( "thu" + i ).getInt( 0 );
		views.setOnClickPendingIntent( thuid , this.createOnClickPendingIntent( context ) );

		int friid = R.id.class.getField( "fri" + i ).getInt( 0 );
		views.setOnClickPendingIntent( friid , this.createOnClickPendingIntent( context ) );

		Log.e( "done" , "Hour : " + i );
	}
	catch ( Exception k )
	{
		Log.e( "ffdsfdsfs" , "ERROR : " + k.getMessage() );
	}
}

Impending exams + Conscription

AW GAWD!!!!!

Haven’t done a tap and only 4 days to go. But to be fair it was an awesome day today!!!!
Any thing different,. No not really, the key to college is to turn up and nail the assignments.
it makes your life a lot easier and revision a lot easier.

As for all those who are waiting for updates on my side open source projects.
2 weeks now!