[Galaxy Note 10.1 General] thermatk:
So

IR device is here:

/sys/class/sec/sec_ir/ir_send

you can find it with your favorite text editor and do the same I have done: write a special sequence of numbers that represents IR codes in a special format. When you hit save the led blinks.

For example,

38400,345,174,20,66,21,65,21,22,21,22,21,22,21,22,21,23,20,66,20,66,20,23,20,66,22,22,21,65,21,22,21,66,20,23,20,23,20,23,20,23,20,23,20,66,21,22,21,22,21,65,21,66,20,66,20,66,21,66,21,22,21,65,22,65,21,22,21,1505,345,174,20,66,21,65,21,22,21,22,21,22,21,22,21,23,20,66,20,66,20,23,20,66,21,22,21,65,21,22,21,66,20,23,20,66,20,23,20,23,20,23,21,65,21,22,21,22,21,65,21,23,20,66,20,66,20,66,21,22,21,65,21,65,21,22,21,1505

It's on/off for Epson projectors. The format has already been understood and there exists an algorithm to convert Pronto codes to such strings.

Using a camera you can see that the led is blinking a sequence and it is really working.

That might be enough for a root remote app, but Peel and others already developed apps are running with a small layer of abstraction and it would be better for all apps that will be developed to do the same and to have Peel working on CM, soo...

We need a System Service called "irda" with two methods - "write_irsend" and "read_irsend". The second one is mysterious but it's implemented by Samsung and it shows something so it would be better to implement both.

"write_irsend" should just write to the file I mentioned before, the Samsung service uses FileWriter or something like that for writing and StringBuffer for reading. Can send smali code if it's needed for implementation.

So, after that it should be that easy to make IR work and that's how Peel works. Code from my very first example app:

public class MainActivity extends Activity {
private Class irClass;
private Object irService;
private Method readIR;
private Method sendIR;
TextView tvHello;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tvHello = (TextView) findViewById(R.id.textView1);

this.irService = getSystemService("irda");
this.irClass = this.irService.getClass();
try {
this.readIR = this.irClass.getMethod("read_irsend", new Class[0]);
this.sendIR = this.irClass.getMethod("write_irsend", new Class[] { String.class });
} catch (Exception e) {
e.printStackTrace();
}
}

public String readIRCode() {
try {
String str2 = this.readIR.invoke(this.irService, new Object[0]).toString();
return str2;
} catch (Exception localException) {
while (true) {
localException.printStackTrace();
}
}
}

public void sendIRCode(String paramString) {
try {
this.sendIR.invoke(this.irService, new Object[] { paramString });
return;
} catch (Exception localException) {
while (true) {
localException.printStackTrace();
}
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

public void rClick(View v) {
String read = readIRCode();
tvHello.setText(read);
}

public void wClick(View v) {
sendIRCode("37300,11,67,10,28,10,28,10,27,11,27,11,27,11,67,11,67,11,27,11,68,10,27,11,27,11,27,11,67,11,27,11,1731,11,68,10,28,10,27,11,27,11,27,11,67,11,27,11,27,11,67,11,27,11,67,11,67,11,68,10,27,11,68,10,1653");
tvHello.setText("Check Sharp TV device!");
}

The same information is reusable for all older Samsung IR tablets, I know there were some.

The most exciting thing about that is that Peel is really crap where you can't have more than 1 TV, there is nothing you can use in Russia and more than that... what about other IR devices? After discovering how the thing works I have downloaded and converted some Pronto codes for my air-condition and I was able to control it, so the power increases a lot.

I hope this was helpful and anyone will help with implementation :)